public void Install() { NativeMethods.DelegateKeyboardHook callback = new NativeMethods.DelegateKeyboardHook(CallNextHook); _keyHookDelegate = GCHandle.Alloc(callback); using (var process = Process.GetCurrentProcess()) { using (var module = process.MainModule) { _keyHook = NativeMethods.SetWindowsHookEx(NativeMethods.WH_KEYBOARD_LL, callback, module.BaseAddress, 0); } } }
public KeyboardHook() { NativeMethods.DelegateKeyboardHook callback = CallNextHook; _keyHookDelegate = GCHandle.Alloc(callback); using (var process = Process.GetCurrentProcess()) { using (var module = process.MainModule) { var moduleHandler = NativeMethods.GetModuleHandle(module.ModuleName); _keyHook = NativeMethods.SetWindowsHookEx(NativeMethods.WH_KEYBOARD_LL, callback, moduleHandler, 0); } } }