public override void Uninit() { this.LogLine("KeyServiceRawInput.Uninit()"); foreach (var registeredShortcut in RegisteredShortcuts.Values.ToList()) { UnregisterShortcut(registeredShortcut); } RegisteredShortcuts.Clear(); var rawInputDevice = new RawInputDevice { UsagePage = HIDUsagePage.Generic, Usage = HIDUsage.Keyboard, Flags = RIDEV.REMOVE, WindowHandle = IntPtr.Zero, }; var result = Win32.RegisterRawInputDevices ( new RawInputDevice[] { rawInputDevice }, 1, Marshal.SizeOf(typeof(RawInputDevice)) ); RunService.UnregisterMessageProcessor(this); }
public override void Uninit() { this.LogLine("KeyServiceHook.Uninit()"); foreach (var registeredShortcut in RegisteredShortcuts.Values.ToList()) { UnregisterShortcut(registeredShortcut); } RegisteredShortcuts.Clear(); if (HandleHook != IntPtr.Zero) { var result = Win32.UnhookWindowsHookEx(HandleHook); this.LogLine("UnhookWindowsHookEx({0}) => {1}", HandleHook.ToRepr(), result.ToRepr()); HandleHook = IntPtr.Zero; } }