Exemplo n.º 1
0
        public void RegisterKeyAction(Keys key, HotkeyModifiers modifier, Action action)
        {
            var hotkeyCombination = new HotkeyCombination
            {
                Key      = key,
                Modifier = modifier
            };

            hotkeyActions[hotkeyCombination] = action;
        }
Exemplo n.º 2
0
        private IntPtr LowLevelKeyboardProc(int nCode, IntPtr wParam, IntPtr lParam)
        {
            if (nCode >= 0 && wParam == (IntPtr)WM_KEYDOWN)
            {
                Keys keyPressed = (Keys)Marshal.ReadInt32(lParam);

                var modifier = HotkeyModifiers.None;

                if (GetCtrlPressed())
                {
                    modifier |= HotkeyModifiers.Ctrl;
                }

                if (GetAltPressed())
                {
                    modifier |= HotkeyModifiers.Alt;
                }

                if (GetAltPressed())
                {
                    modifier |= HotkeyModifiers.Shift;
                }

                var hotkeyCombination = new HotkeyCombination
                {
                    Key      = keyPressed,
                    Modifier = modifier
                };

                if (hotkeyActions.TryGetValue(hotkeyCombination, out Action hotkeyAction))
                {
                    hotkeyAction?.Invoke();
                }
            }

            return(WinApi.WinApi.CallNextHookEx(
                       keyboardProcHook, nCode, wParam, lParam));
        }
Exemplo n.º 3
0
 public bool Equals(HotkeyCombination hotkeyCombination)
 {
     return(hotkeyCombination != null && hotkeyCombination.Key == Key &&
            hotkeyCombination.Modifier == Modifier);
 }