Example #1
0
        private IntPtr HookFunc(int nCode, IntPtr wParam, IntPtr lParam)
        {
            if (nCode < 0)
            {
                return(WindowsHookExInterop.CallNextHookEx(_hookId, nCode, wParam, lParam));
            }

            var iwParam = wParam.ToInt32();

            if (iwParam == WINDOW_MESSAGE.WM_KEYDOWN || iwParam == WINDOW_MESSAGE.WM_SYSKEYDOWN)
            {
                {
                    var code = (VIRTUAL_KEY_CODE)Marshal.ReadInt32(lParam);
                    var key  = _mapper.Map <VIRTUAL_KEY_CODE, Key>(code);
                    RaiseKeyEvent(new KeyEventArgs(key, KeyAction.KeyDown));
                }
            }
            else if (iwParam == WINDOW_MESSAGE.WM_KEYUP || iwParam == WINDOW_MESSAGE.WM_SYSKEYUP)
            {
                {
                    var code = (VIRTUAL_KEY_CODE)Marshal.ReadInt32(lParam);
                    var key  = _mapper.Map <VIRTUAL_KEY_CODE, Key>(code);
                    RaiseKeyEvent(new KeyEventArgs(key, KeyAction.KeyUp));
                }
            }

            return(WindowsHookExInterop.CallNextHookEx(_hookId, nCode, wParam, lParam));
        }
Example #2
0
        private IntPtr HookFunc(int nCode, IntPtr wParam, IntPtr lParam)
        {
            if (nCode < 0)
            {
                return(WindowsHookExInterop.CallNextHookEx(IntPtr.Zero, nCode, wParam, lParam));
            }

            var iwParam = wParam.ToInt32();

            if (iwParam == (uint)WINDOW_MESSAGE.WM_KEYDOWN ||
                iwParam == (uint)WINDOW_MESSAGE.WM_SYSKEYDOWN)
            {
                {
                    var code = Marshal.ReadInt32(lParam);
                    var key  = KeyInterop.KeyFromVirtualKey(code);
                    RaiseKeyEvent(new KeyEventArgs(key, KeyState.KeyDown));
                }
            }
            else if (iwParam == (uint)WINDOW_MESSAGE.WM_KEYUP ||
                     iwParam == (uint)WINDOW_MESSAGE.WM_SYSKEYUP)
            {
                {
                    var code = Marshal.ReadInt32(lParam);
                    var key  = KeyInterop.KeyFromVirtualKey(code);
                    RaiseKeyEvent(new KeyEventArgs(key, KeyState.KeyUp));
                }
            }

            return(WindowsHookExInterop.CallNextHookEx(IntPtr.Zero, nCode, wParam, lParam));
        }
Example #3
0
 public void Uninstall()
 {
     if (_hookId == IntPtr.Zero)
     {
         return;
     }
     WindowsHookExInterop.UnhookWindowsHookEx(_hookId);
     _hookId = IntPtr.Zero;
 }
Example #4
0
 public void Uninstall()
 {
     if (_hookId == IntPtr.Zero)
     {
         return;
     }
     WindowsHookExInterop.UnhookWindowsHookEx(_hookId);
     _keyboardHookDelegate = null;
     _hookId = IntPtr.Zero;
 }
Example #5
0
 private static IntPtr SetHook(WindowsHookExInterop.KeyboardHook proc)
 {
     using (var module = Process.GetCurrentProcess().MainModule)
     {
         return(WindowsHookExInterop.SetWindowsHookEx(
                    13,
                    proc,
                    GetModuleHandleInterop.GetModuleHandle(module.ModuleName),
                    0));
     }
 }
Example #6
0
 private static IntPtr SetHook(WindowsHookExInterop.KeyboardHook windowsHookDelegate)
 {
     using (var module = Process.GetCurrentProcess().MainModule)
     {
         return(WindowsHookExInterop.SetWindowsHookEx(
                    WH_KEYBOARD_LL,
                    windowsHookDelegate,
                    GetModuleHandleInterop.GetModuleHandle(module.ModuleName),
                    0));
     }
 }