本人今日研究"鼠标.键盘锁定问题",采用一下前人代码:
var KHK: HHook;
tmp: integer;
function HookProc(ICode: integer;WP:WParam;LP:LParam):LResult;
begin
Result:=CallNextHookEx(KHK,0,0,0);
end;
使用下列语句开始锁定:
KHK:=SetWindowsHookex(WH_JOURNALPLAYBACK,@HookProc,HInstance,0);
使用下列语句结束锁定:
UnHookWindowsHookEx(KHK);发现实在不能屏蔽Windows的系统键Ctrl-Alt-Tab,Ctrl-Esc,Alt-Tab等,
后经人指点使用:
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, @tmp, 0);//锁起来
SystemParametersInfo(SPI_SCREENSAVERRUNNING, 0, @tmp, 0);//打开吧
可是,只是屏蔽了Alt-Tab键,Ctrl-Alt-Tab,Ctrl-Esc依然不能屏蔽,
后才API大全找到如下结果:函数功能:该函数查询或设置系统级参数。该函数也可以在设置参数中更新用户配置文件。SystemParametersInfo函数原型:B00L SystemParametersinfo(UINT uiAction,UINT uiParam,PVOID pvParam,UINT fWinlni);
其中:SPI_SCREENSAVERRUNNING:改名为SPI_SETSCREENSAVERRUNNING
SPI_SETSCREENSAVERRUNNING:用于Windows 95及以后版本,内部使用。应用程序不应该使用此标志SPI_SETSETSCREENSAVETIMEOUT:参数ulParam值为屏幕保护器时间限度值。该值是一个时间量,以秒为单位,在屏幕保护器激活之前,系统应该一直是空闲的,超过这个值就激活屏幕保护器。己经周折,仍不能解决问题,急盼高人指点!!!
高分以待!!!
***************************

解决方案 »

  1.   

    后又得一如下代码:
    编译通过,但是,运行时在cpu选项停止!!!
    锁键盘
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    Asm //封锁20端口
    IN AL,21H
    OR AL,02H
    OUT 21H,AL
    end;
    end;
    procedure TForm1.Button2Click(Sender: TObject);
    begin
    Asm //解锁20端口
    IN AL,21H
    AND AL,0FDH
    OUT 21H,AL
    end;
    end;
      

  2.   

    不知道楼上试过没有
    nt/2000根本不支持直接对端口进行操作
    也就是说不能使用in out命令
      

  3.   

    下列函数有用的
    SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, @tmp, 0);//锁起来
    SystemParametersInfo(SPI_SCREENSAVERRUNNING, 0, @tmp, 0);//打开吧
    再把一全屏窗口做在 StaOnTop
      

  4.   

    >>下列函数有用的
    >>SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, @tmp, 0);//锁起来
    >>SystemParametersInfo(SPI_SCREENSAVERRUNNING, 0, @tmp, 0);//打开吧
    不知道楼上试过没有
    2000根本不支持
      

  5.   

    你的问题里面可没有说是WIN2000啊。