public void RegisterHotKey(HookModifierKeys modifier, int key) { _currentId = _currentId + 1; if (!RegisterHotKey(_window.Handle, _currentId, (uint)modifier, GetAsyncKeyState(key))) { throw new InvalidOperationException("Couldn’t register the hot key."); } }
protected override void WndProc(ref Message m) { base.WndProc(ref m); if (m.Msg == WM_HOTKEY) { Keys key = (Keys)(((int)m.LParam >> 16) & 0xFFFF); HookModifierKeys modifier = (HookModifierKeys)((int)m.LParam & 0xFFFF); if (KeyPressed != null) { KeyPressed(this, new KeyPressedEventArgs(modifier, key)); } } }
internal KeyPressedEventArgs(HookModifierKeys modifier, Keys key) { _modifier = modifier; _key = key; }