Пример #1
0
        private static void SubscribeToKeyboardEvents()
        {
            if (keyboardHookHandle != 0) // Already subscribed.
            {
                return;
            }

            keyboardDelegate   = KeyboardHookProc;
            keyboardHookHandle = Win.SetWindowsHookEx(Win.WH_KEYBOARD_LL, keyboardDelegate, IntPtr.Zero, 0);
            HandleAnyErrors(keyboardHookHandle);
        }
Пример #2
0
        private static void SubscribeToMouseEvents()
        {
            if (mouseHookHandle != 0) // Already subscribed.
            {
                return;
            }

            mouseDelegate   = MouseHookProc;
            mouseHookHandle = Win.SetWindowsHookEx(Win.WH_MOUSE_LL, mouseDelegate, IntPtr.Zero, 0);
            HandleAnyErrors(mouseHookHandle);
        }
Пример #3
0
        private static void UnsubscribeFromKeyboardEvents()
        {
            if (keyboardHookHandle == 0) // Already unsubscribed.
            {
                return;
            }

            if (keyDownHandler != null || keyUpHandler != null) // We have listeners.
            {
                return;
            }

            int result = Win.UnhookWindowsHookEx(keyboardHookHandle);

            keyboardHookHandle = 0;
            keyboardDelegate   = null;
            HandleAnyErrors(result);
        }
Пример #4
0
        private static void TryUnsubscribeFromMouseEvents()
        {
            if (mouseHookHandle == 0) // Already unsubscribed.
            {
                return;
            }

            if (WeHaveMouseEventListeners)
            {
                return;
            }

            int result = Win.UnhookWindowsHookEx(mouseHookHandle);

            mouseHookHandle = 0;
            mouseDelegate   = null;
            HandleAnyErrors(result);
        }