public static SpecialKeyState CheckModifiers() { SpecialKeyState state = new SpecialKeyState(); if ((Keyboard.GetKeyStates(Key.LeftShift) & KeyStates.Down) > 0 || (Keyboard.GetKeyStates(Key.RightShift) & KeyStates.Down) > 0) { state.ShiftPressed = true; } if ((Keyboard.GetKeyStates(Key.LWin) & KeyStates.Down) > 0 || (Keyboard.GetKeyStates(Key.RWin) & KeyStates.Down) > 0) { state.WinPressed = true; } if ((Keyboard.GetKeyStates(Key.LeftCtrl) & KeyStates.Down) > 0 || (Keyboard.GetKeyStates(Key.RightCtrl) & KeyStates.Down) > 0) { state.CtrlPressed = true; } if ((Keyboard.GetKeyStates(Key.LeftAlt) & KeyStates.Down) > 0 || (Keyboard.GetKeyStates(Key.RightAlt) & KeyStates.Down) > 0) { state.AltPressed = true; } return(state); }
void TbHotkey_OnPreviewKeyDown(object sender, KeyEventArgs e) { e.Handled = true; tbMsg.Visibility = Visibility.Hidden; //when alt is pressed, the real key should be e.SystemKey Key key = (e.Key == Key.System ? e.SystemKey : e.Key); SpecialKeyState specialKeyState = GlobalHotkey.Instance.CheckModifiers(); var hotkeyModel = new HotkeyModel( specialKeyState.AltPressed, specialKeyState.ShiftPressed, specialKeyState.WinPressed, specialKeyState.CtrlPressed, key); var hotkeyString = hotkeyModel.ToString(); if (hotkeyString == tbHotkey.Text) { return; } Dispatcher.InvokeAsync(async() => { await Task.Delay(500); SetHotkey(hotkeyModel); }); }
void TbHotkey_OnPreviewKeyDown(object sender, KeyEventArgs e) { e.Handled = true; tbMsg.Visibility = Visibility.Hidden; //when alt is pressed, the real key should be e.SystemKey Key key = (e.Key == Key.System ? e.SystemKey : e.Key); SpecialKeyState specialKeyState = GlobalHotkey.Instance.CheckModifiers(); var hotkeyModel = new HotkeyModel( specialKeyState.AltPressed, specialKeyState.ShiftPressed, specialKeyState.WinPressed, specialKeyState.CtrlPressed, key); var hotkeyString = hotkeyModel.ToString(); if (hotkeyString == tbHotkey.Text) { return; } Dispatcher.DelayInvoke("HotkeyAvailabilityTest", o => { SetHotkey(hotkeyModel); }, TimeSpan.FromMilliseconds(500)); }
public SpecialKeyState CheckModifiers() { SpecialKeyState state = new SpecialKeyState(); if ((InterceptKeys.GetKeyState(VK_SHIFT) & 0x8000) != 0) { //SHIFT is pressed state.ShiftPressed = true; } if ((InterceptKeys.GetKeyState(VK_CONTROL) & 0x8000) != 0) { //CONTROL is pressed state.CtrlPressed = true; } if ((InterceptKeys.GetKeyState(VK_ALT) & 0x8000) != 0) { //ALT is pressed state.AltPressed = true; } if ((InterceptKeys.GetKeyState(VK_WIN) & 0x8000) != 0) { //WIN is pressed state.WinPressed = true; } return(state); }
private bool KListener_hookedKeyboardCallback(KeyEvent keyevent, int vkcode, SpecialKeyState state) { if (GlobalKeyboardEvent != null) { return(GlobalKeyboardEvent((int)keyevent, vkcode, state)); } return(true); }
private void SelectItem(int index) { int zeroBasedIndex = index - 1; SpecialKeyState keyState = GlobalHotkey.Instance.CheckModifiers(); if (keyState.AltPressed || keyState.CtrlPressed) { List <Result> visibleResults = pnlResult.GetVisibleResults(); if (zeroBasedIndex < visibleResults.Count) { SelectResult(visibleResults[zeroBasedIndex]); } } }
private bool API_GlobalKeyboardEvent(int keyevent, int vkcode, SpecialKeyState state) { if (keyevent == 256 && vkcode == 68 && state.CtrlPressed && state.AltPressed) // 68 is D { var foreGroundWindowPtr = NativeMethods.GetForegroundWindow(); Window foreGroundWindow = new Window(foreGroundWindowPtr); var quickAccessWindow = new QuickAccessKeywordAssignedWindow(foreGroundWindow); quickAccessWindow.ShowDialog(); return(false); } return(true); }
private bool API_GlobalKeyboardEvent(int keyevent, int vkcode, SpecialKeyState state) { if (!_settings.OverrideAltTab) { return(true); } if (keyevent == (int)KeyEvent.WM_SYSKEYDOWN && vkcode == (int)Keys.Tab && state.AltPressed) { OnAltTabPressed(); return(false); } if (keyevent == (int)KeyEvent.WM_SYSKEYUP && vkcode == (int)Keys.Tab) { //prevent system alt+tab action return(false); } return(true); }
bool API_GlobalKeyboardEvent(int keyevent, int vkcode, SpecialKeyState state) { if (_settings.ReplaceWinR) { if (keyevent == (int)KeyEvent.WM_KEYDOWN && vkcode == (int)Keys.R && state.WinPressed) { WinRStroked = true; OnWinRPressed(); return(false); } if (keyevent == (int)KeyEvent.WM_KEYUP && WinRStroked && vkcode == (int)Keys.LWin) { WinRStroked = false; return(false); } } return(true); }
bool API_GlobalKeyboardEvent(int keyevent, int vkcode, SpecialKeyState state) { if (_settings.ReplaceWinR) { if (keyevent == (int)KeyEvent.WM_KEYDOWN && vkcode == (int)Keys.R && state.WinPressed) { WinRStroked = true; OnWinRPressed(); return(false); } if (keyevent == (int)KeyEvent.WM_KEYUP && WinRStroked && vkcode == (int)Keys.LWin) { WinRStroked = false; keyboardSimulator.ModifiedKeyStroke(VirtualKeyCode.LWIN, VirtualKeyCode.CONTROL); return(false); } } return(true); }
private bool KListener_hookedKeyboardCallback(KeyEvent keyevent, int vkcode, SpecialKeyState state) { if (CommonStorage.Instance.UserSetting.ReplaceWinR) { //todo:need refatoring. move those codes to CMD file or expose events if (keyevent == KeyEvent.WM_KEYDOWN && vkcode == (int)Keys.R && state.WinPressed) { WinRStroked = true; Dispatcher.BeginInvoke(new Action(OnWinRPressed)); return(false); } if (keyevent == KeyEvent.WM_KEYUP && WinRStroked && vkcode == (int)Keys.LWin) { WinRStroked = false; keyboardSimulator.ModifiedKeyStroke(VirtualKeyCode.LWIN, VirtualKeyCode.CONTROL); return(false); } } return(true); }
private void TbHotkey_OnPreviewKeyDown(object sender, KeyEventArgs e) { hotkeyUpdateSource?.Cancel(); hotkeyUpdateSource?.Dispose(); hotkeyUpdateSource = new(); var token = hotkeyUpdateSource.Token; e.Handled = true; //when alt is pressed, the real key should be e.SystemKey Key key = e.Key == Key.System ? e.SystemKey : e.Key; SpecialKeyState specialKeyState = GlobalHotkey.CheckModifiers(); var hotkeyModel = new HotkeyModel( specialKeyState.AltPressed, specialKeyState.ShiftPressed, specialKeyState.WinPressed, specialKeyState.CtrlPressed, key); var hotkeyString = hotkeyModel.ToString(); if (hotkeyString == tbHotkey.Text) { return; } _ = Dispatcher.InvokeAsync(async() => { await Task.Delay(500, token); if (!token.IsCancellationRequested) { await SetHotkey(hotkeyModel); } }); }
bool API_GlobalKeyboardEvent(int keyevent, int vkcode, SpecialKeyState state) { // not overriding Win+R // crutkas we need to earn the right for Win+R override /* * if (_settings.ReplaceWinR) * { * if (keyevent == (int)KeyEvent.WM_KEYDOWN && vkcode == (int)Keys.R && state.WinPressed) * { * _winRStroked = true; * OnWinRPressed(); * return false; * } * if (keyevent == (int)KeyEvent.WM_KEYUP && _winRStroked && vkcode == (int)Keys.LWin) * { * _winRStroked = false; * _keyboardSimulator.ModifiedKeyStroke(VirtualKeyCode.LWIN, VirtualKeyCode.BACK); * return false; * } * } */ return(true); }
bool API_GlobalKeyboardEvent(int keyevent, int vkcode, SpecialKeyState state) { if (CMDStorage.Instance.ReplaceWinR) { if (keyevent == (int)KeyEvent.WM_KEYDOWN && vkcode == (int)Keys.R && state.WinPressed) { WinRStroked = true; OnWinRPressed(); return false; } if (keyevent == (int)KeyEvent.WM_KEYUP && WinRStroked && vkcode == (int)Keys.LWin) { WinRStroked = false; keyboardSimulator.ModifiedKeyStroke(VirtualKeyCode.LWIN, VirtualKeyCode.CONTROL); return false; } } return true; }
bool API_GlobalKeyboardEvent(int keyevent, int vkcode, SpecialKeyState state) { if (_settings.ReplaceWinR) { if (keyevent == (int)KeyEvent.WM_KEYDOWN && vkcode == (int)Keys.R && state.WinPressed) { WinRStroked = true; OnWinRPressed(); return false; } if (keyevent == (int)KeyEvent.WM_KEYUP && WinRStroked && vkcode == (int)Keys.LWin) { WinRStroked = false; return false; } } return true; }