Exemplo n.º 1
0
 public static void Hook(Action callback)
 {
     using (Process curProcess = Process.GetCurrentProcess())
         using (ProcessModule curModule = curProcess.MainModule)
         {
             _hookID = User32KeyboardHook.SetWindowsHookEx(WH_KEYBOARD_LL, _proc, Kernel32.GetModuleHandle(curModule.ModuleName), 0);
         }
     User32KeyboardHook.AlternativeAltTabBehavior = callback;
 }
Exemplo n.º 2
0
 private static IntPtr HookCallback(int nCode, IntPtr wParam, ref KBDLLHOOKSTRUCT lParam)
 {
     if (nCode >= 0 && (wParam == (IntPtr)WM_SYSKEYUP || wParam == (IntPtr)WM_SYSKEYDOWN))
     {
         int vkCode = lParam.vkCode;
         if (vkCode == 9 && lParam.flags == 32)
         {
             if (User32KeyboardHook.AlternativeAltTabBehavior != null)
             {
                 User32KeyboardHook.AlternativeAltTabBehavior();
             }
             return(new IntPtr(1));
         }
     }
     return(CallNextHookEx(_hookID, nCode, wParam, ref lParam));
 }
Exemplo n.º 3
0
 public static void UnHook()
 {
     User32KeyboardHook.UnhookWindowsHookEx(_hookID);
 }