我在程序启动时屏蔽鼠标和键盘,一段时间后,键盘自己解开,鼠标不可用。
鼠标我用的隐藏,基本上算可以,能限制最好,可是键盘就不行了,要求所有键都不好使,组合也不行,谁能做到,救命啊!
以下为今天晚上搜索的:
Asm //封锁20端口
IN AL,21H
OR AL,02H
OUT 21H,AL
end;
执行时报错
SystemParametersInfo( SPI_SCREENSAVERRUNNING, 1, @temp, 0);
不好使
有好使的吗!5555555
分不够就要!
鼠标我用的隐藏,基本上算可以,能限制最好,可是键盘就不行了,要求所有键都不好使,组合也不行,谁能做到,救命啊!
以下为今天晚上搜索的:
Asm //封锁20端口
IN AL,21H
OR AL,02H
OUT 21H,AL
end;
执行时报错
SystemParametersInfo( SPI_SCREENSAVERRUNNING, 1, @temp, 0);
不好使
有好使的吗!5555555
分不够就要!
解决方案 »
- 在interface 后面声明的单元和 在implementation后面声明的有声明不同?
- 安装了sourceConneXion + SourceOffSite客户端,但是配置时提示找不到sos
- 在TDBGrid中设置了一列显示为:CHECKBOX 如何可以实现让他可以点击修改?
- 写了一个屏幕保护程序,大家可以下载源代码
- 使用html help workshop制作chm帮助文件,别名文件和映象文件的制作格式不知道?在线!
- 在delphi如何中为web中的数据与程序通信...
- 打印的问题??分不够再加
- 装了宽带的困扰!!!
- 请教:如何给一个时间日期型字段赋值为null?
- 請教TreeView的用法,謝謝!
- 数据库保存和插入图片出错?
- STRINGGRID 与DBGRIDEH 冲突问题
一下是dll的代码library KeyBoard;uses
SysUtils,
Windows,
ShellApi,
Messages,
WinProcs,
Classes;var
KBHook:HHook; function KeyBoardProc(Code:integer;wParam:WPARAM;lParam:LPARAM):LRESULT;stdcall;
begin
result:=0;
if Code<0 then
begin
CallNextHookEx(KBHook,Code,wParam,lParam);
end; result:=1; end; function StartHook:boolean;stdcall;
begin
KBHook:=SetWindowsHookEx(WH_KEYBOARD,@KeyBoardProc,hInstance,0);
end; function RemoveHook:boolean;stdcall;
begin
UnHookWindowsHookEx(KBHook);
end;exports
StartHook,RemoveHook;{$R *.res}begin
end.————————————————————————————————————————————————————
一下是执行程序的代码
unit SetHook;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;implementation{$R *.dfm}function StartHook:boolean;external 'KeyBoard.dll';
function RemoveHook:boolean;external 'KeyBoard.dll';procedure TForm1.FormCreate(Sender: TObject);
begin
StartHook;
end;procedure TForm1.FormDestroy(Sender: TObject);
begin
RemoveHook;
end;end.执行这个应用程序,你再使用键盘试试看?记得给分
也一样的没办法,呵呵