Beispiel #1
0
        private static int GlobalHookCallback(HookType Type, int code, IntPtr wParam, IntPtr lParam)
        {
            switch (Type)
            {
            case HookType.WH_KEYBOARD_LL:
            {
                if (!KeyboardHooks.Dispatch(code, wParam, lParam))
                {
                    return(1);
                }
                break;
            }

            case HookType.WH_MOUSE_LL:
            {
                if (!MouseHooks.Dispatch(code, wParam, lParam))
                {
                    return(1);
                }
                break;
            }

            default:
                break;
            }

            return(User32.CallNextHookEx(IntPtr.Zero, code, wParam, lParam));
        }
Beispiel #2
0
        public static void Uninstall()
        {
            lock (HookContainerLock)
            {
                KeyboardHooks.Remove();
                MouseHooks.Remove();

                foreach (var Handle in HooksHandlesByType)
                {
                    User32.UnhookWindowsHookEx(Handle.Value);
                }

                HooksHandlesByType.Clear();
            }
        }