public void Start() { if (HookKeyboard) { KeyboardProc = KeyboardHookCallback; keyboardHookID = SetWindowsHookEx(WH_KEYBOARD_LL, KeyboardProc, IntPtr.Zero, 0); } }
/// <summary> /// Installs low level keyboard hook. This hook raises events every time a keyboard event occured. /// </summary> /// <remarks></remarks> public static void InstallHook() { KeyHookDelegate = new KeyboardProcDelegate(KeyboardProc); if (Environment.Version.Major >= 4) { IntPtr hInstance = LoadLibrary("user32.dll"); KeyHook = SetWindowsHookEx(WH_KEYBOARD_LL, KeyHookDelegate, hInstance.ToInt32(), 0); } else { KeyHook = SetWindowsHookEx(WH_KEYBOARD_LL, KeyHookDelegate, Marshal.GetHINSTANCE(System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0]).ToInt32(), 0); } //KeyHook = SetWindowsHookEx(WH_KEYBOARD_LL, KeyHookDelegate, Marshal.GetHINSTANCE(System.Reflection.Assembly.GetExecutingAssembly().GetModules()[0]).ToInt32(), 0); }
private static extern IntPtr SetWindowsHookEx(int idHook, KeyboardProcDelegate lpfn, IntPtr hMod, uint dwThreadId);
private static extern int SetWindowsHookEx(int idHook, KeyboardProcDelegate lpfn, int hmod, int dwThreadId);