예제 #1
0
        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);
        }
예제 #2
0
 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;
     }
 }