Beispiel #1
0
        private IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam)
        {
            if (nCode >= 0)
            {
                MouseButtons button;
                switch (wParam.ToInt32())
                {
                case WM_LBUTTONDOWN:
                    button = MouseButtons.Left;
                    break;

                case WM_RBUTTONDOWN:
                    button = MouseButtons.Right;
                    break;

                case WM_MBUTTONDOWN:
                    button = MouseButtons.Middle;
                    break;

                default:
                    button = MouseButtons.None;
                    break;
                }
                if (button != MouseButtons.None)
                {
                    CallBacks?.Invoke(button);
                }
            }

            return(CallNextHookEx(_hookID, nCode, wParam, lParam));
        }
        private IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam)
        {
            if (nCode >= 0 && wParam == (IntPtr)WM_KEYDOWN)
            {
                int vkCode = Marshal.ReadInt32(lParam);
                CallBacks?.Invoke((Keys)vkCode);
            }

            return(CallNextHookEx(_hookID, nCode, wParam, lParam));
        }