回复人: wz2001(maomao) (2001-7-18 20:59:34)  得0分 
其实,这个问题,好多地方都有解答,比较简单的方式是欺骗系统进入屏保模式,如下
调用 SystemParametersInfo(SPI_SCREENSAVERRUNNING, 1, 0, 0); ,使(Ctrl+Alt+Del)失效.
恢复时调用 SystemParametersInfo(SPI_SCREENSAVERRUNNING, 0, 0, 0); 
这比Hook简单多了.
 

解决方案 »

  1.   

    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);//打开吧
      

  2.   

    这两种方法锁不全,我曾试过hook+屏保状态,不行
      

  3.   

    我在大富翁看的一种方法,大家一同学习吧
        IN AL,21H
        OR AL,02H
        OUT 21H,AL
      

  4.   

    关键是2k的Ctrl-Alt-Tab.让键盘全部实效,用汇编怎么写
    给个完整的号不好