程序运行初锁键盘和鼠标,运行后解除!有代码吗?别出错的,最好是带DEMO的。
能给我发信箱里最好!
[email protected]

解决方案 »

  1.   

    procedure lockmouse(lock:boolean); //锁住鼠标,true锁,false解锁
    var rt:Trect;
        p:Tpoint;
    begin
      if lock=true then
        begin
          GetCursorPos(p);
          rt:=rect(p.x,p.y,p.x+1,p.y+1);
          clipcursor(@rt);
        end else clipcursor(nil);
    end;//键盘锁
    unit   Unit2;   
        
      interface   
      uses   
              Wintypes,   WinProcs;   
        
      //键盘上锁   
      function   DisableKeyboard:   Boolean;   
      //键盘解锁   
      procedure   EnableKeyboard;   
        
      implementation   
        
      var   
              oldHook:   Hhook;   
        
      function   KbHook(code:   Integer;   wparam:   Word;   lparam:   LongInt):   LongInt;   
      begin   
              if   code   <   0   then   
                      KbHook   :=   CallNextHookEx(oldHook,   code,   wparam,   lparam)   
              else   
                      KbHook   :=   1;   
      end;   //   KbHook   
        
      function   DisableKeyboard:   Boolean;   
      //上锁   
      begin   
              oldHook   :=   SetWindowsHookEx(WH_KEYBOARD,   @KbHook,   Hinstance,   0);   
              DisableKeyboard   :=   oldHook   <>   0;   
      end;   
        
      procedure   EnableKeyboard;   
      //解锁   
      begin   
              if   oldHook   <>   0   then   
              begin   
                      UnhookWindowshookEx(oldHook);   
                      oldHook   :=   0;   
              end;   //   If   
      end;   
      end.   
        
        
        
        
      unit   Unit3;   
        
      interface   
      uses   
              Wintypes,   WinProcs;   
        
      function   DisableKeyBoard:   Boolean;   
      procedure   EnableKeyBoard;   
        
      implementation   
      var   
              oldHook:   HHOOK;   
        
        
      function   KbHook(code:   Integer;   wparam:   Word;   lparam:   LongInt):   LongInt;   
      begin   
              if   code   <   0   then   
                      KbHook   :=   CallNextHookEx(oldHook,   code,   wparam,   lparam)   
              else   
                      KbHook   :=   1;   
      end;   
        
      function   DisableKeyBoard:   Boolean;   
      begin   
              oldHook   :=   SetWindowsHookEx(WH_KEYBOARD,   @KbHook,   HINSTANCe,   0);   
              Result   :=   oldHook   <>   0;   
      end;   
        
      procedure   EnableKeyBoard;   
      begin   
              if   oldHook   <>   0   then   
              begin   
                      UnhookWindowsHookEx(oldHook);   
                      oldHook   :=   0;   
              end;   
        
      end;   
        
      end.   
      

  2.   

    const
       WH_KEYBOARD_LL = 13;
    ......
    SetWindowsHookEx(WH_KEYBOARD_LL,   @KbHook,   HINSTANCe,   0); 
    对于一般的系统键都能够屏蔽,如果要屏蔽ctrl+alt+del则需要单独处理