DameWare 锁鼠标键盘是怎么实现的?
多谢.

解决方案 »

  1.   

    用hook;
    关于这方面资料,这儿有我的解答
    http://expert.csdn.net/Expert/topic/2937/2937479.xml?temp=.123089
      

  2.   

    StarRainBow(星虹) 
    棗棗棗棗棗?
    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);//打开吧
    ______________________记住多给点分。
    要是不灵的话,就把代码作成DLL。
    BTW,以上代码可以同时锁住鼠标和键盘。 
    ***************************
    锁键盘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;