/// <summary> /// 注册热键 /// </summary> /// <param name="handle"></param> /// <param name="id"></param> /// <param name="key"></param> /// <param name="modifiers"></param> /// <returns></returns> public static bool RegisterHotKey(IntPtr handle, int id, EasyModifierKeys modifiers, EasyKey key) { var virtualCode = EasyKeyInterop.VirtualKeyFromKey(key); var modifiersKey = (uint)modifiers; return(RegisterHotKey(handle, id, modifiersKey, (uint)virtualCode)); }
public void Register(uint key, uint modifierKeys) { var key1 = EasyKeyInterop.KeyFromVirtualKey((int)key); var modifierKeys1 = (EasyModifierKeys)modifierKeys; var hotKey = new HotKey(key1, modifierKeys1); Register(hotKey); }
private IntPtr HookCallBack(int nCode, IntPtr wParam, IntPtr lParam) { int keyState = (int)wParam; int vkCode = Marshal.ReadInt32(lParam); var keyPressed = EasyKeyInterop.KeyFromVirtualKey(vkCode); if (nCode >= 0 && (wParam == (IntPtr)NativeMethods.WM_KEYDOWN || wParam == (IntPtr)NativeMethods.WM_SYSKEYDOWN)) { if (_pressKeys.IndexOf(keyPressed) < 0) { _pressKeys.Add(keyPressed); } EasyModifierKeys modifierKeys = default(EasyModifierKeys); EasyKey easyKey = default(EasyKey); foreach (var key in _pressKeys) { if (TryGetModifierKey(key, out EasyModifierKeys keys)) { modifierKeys = modifierKeys | keys; } else { easyKey = easyKey | key; } } var hotKey = new HotKey(easyKey, modifierKeys); if (_registered.ContainsKey(hotKey)) { OnKeyPressed(hotKey); } } if (nCode >= 0 && (wParam == (IntPtr)NativeMethods.WM_KEYUP || wParam == (IntPtr)NativeMethods.WM_SYSKEYUP)) { _pressKeys.Remove(keyPressed); } return(EasyWinAPI.CallNextHookEx(_hookId, nCode, wParam, lParam)); }