Exemple #1
0
 private int KeyboardHookProc(int nCode, int wParam, IntPtr lParam)
 {
     if (nCode >= 0 && (this.KeyDown != null || this.KeyUp != null || this.KeyPress != null))
     {
         KeyboardHookStruct MyKeyboardHookStruct = (KeyboardHookStruct)Marshal.PtrToStructure(lParam, typeof(KeyboardHookStruct));
         if (this.KeyDown != null && (wParam == 256 || wParam == 260))
         {
             Keys         keyData = (Keys)MyKeyboardHookStruct.vkCode;
             KeyEventArgs e       = new KeyEventArgs(keyData);
             this.KeyDown(this, e);
         }
         if (this.KeyPress != null && wParam == 256)
         {
             byte[] keyState = new byte[256];
             GlobalHook.GetKeyboardState(keyState);
             byte[] inBuffer = new byte[2];
             if (GlobalHook.ToAscii(MyKeyboardHookStruct.vkCode, MyKeyboardHookStruct.scanCode, keyState, inBuffer, MyKeyboardHookStruct.flags) == 1)
             {
                 KeyPressEventArgs e2 = new KeyPressEventArgs((char)inBuffer[0]);
                 this.KeyPress(this, e2);
             }
         }
         if (this.KeyUp != null && (wParam == 257 || wParam == 261))
         {
             Keys         keyData = (Keys)MyKeyboardHookStruct.vkCode;
             KeyEventArgs e       = new KeyEventArgs(keyData);
             this.KeyUp(this, e);
         }
     }
     return(GlobalHook.CallNextHookEx(GlobalHook._hKeyboardHook, nCode, wParam, lParam));
 }
Exemple #2
0
 private int MouseHookProc(int nCode, int wParam, IntPtr lParam)
 {
     if (nCode >= 0 && this.OnMouseActivity != null)
     {
         MouseButtons button = MouseButtons.None;
         if (wParam != 513)
         {
             if (wParam == 516)
             {
                 button = MouseButtons.Right;
             }
         }
         else
         {
             button = MouseButtons.Left;
         }
         int clickCount = 0;
         if (button != MouseButtons.None)
         {
             if (wParam == 515 || wParam == 518)
             {
                 clickCount = 2;
             }
             else
             {
                 clickCount = 1;
             }
         }
         MouseHookStruct MyMouseHookStruct = (MouseHookStruct)Marshal.PtrToStructure(lParam, typeof(MouseHookStruct));
         MouseEventArgs  e = new MouseEventArgs(button, clickCount, MyMouseHookStruct.pt.x, MyMouseHookStruct.pt.y, 0);
         this.OnMouseActivity(this, e);
     }
     return(GlobalHook.CallNextHookEx(GlobalHook._hMouseHook, nCode, wParam, lParam));
 }