public static string GetHotKeyName(User32.KeyModifiers keyModifier, Keys key) { if (key == Keys.None) { return("<null>"); } StringBuilder name = new StringBuilder(""); if ((keyModifier & User32.KeyModifiers.Alt) == User32.KeyModifiers.Alt) { name.Append("Alt + "); } if ((keyModifier & User32.KeyModifiers.Ctrl) == User32.KeyModifiers.Ctrl) { name.Append("Ctrl + "); } if ((keyModifier & User32.KeyModifiers.Shift) == User32.KeyModifiers.Shift) { name.Append("Shift + "); } name.Append(Enum.GetName(typeof(Keys), key)); return(name.ToString()); }
private void textBox_SetSwitchHotKey_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Delete || e.KeyCode == Keys.Back) { CleanHotKeyInfo_SwitchClickThread(); e.Handled = true; return; } hotKeyModifiers_SwitchClickThread = User32.KeyModifiers.None; if (e.Alt && e.KeyCode != Keys.Menu) { hotKeyModifiers_SwitchClickThread |= User32.KeyModifiers.Alt; } if (e.Control && e.KeyCode != Keys.ControlKey) { hotKeyModifiers_SwitchClickThread |= User32.KeyModifiers.Ctrl; } if (e.Shift && e.KeyCode != Keys.ShiftKey) { hotKeyModifiers_SwitchClickThread |= User32.KeyModifiers.Shift; } hotKey_SwitchClickThread = e.KeyCode; Change_textBox_SetSwitchHotKey_Text(GetHotKeyName(hotKeyModifiers_SwitchClickThread, hotKey_SwitchClickThread)); e.Handled = true; }
public HotkeyController(SettingsController settingsController, TemtemTrackerUI trackerUI, TemtemTableController tableController) { this.settingsController = settingsController; this.trackerUI = trackerUI; this.tableController = tableController; //Get the hotkeys from settings this.resetTableHotkey = (Keys)settingsController.GetUserSettings().resetTableHotkey; this.resetTableHotkeyModifiers = (Keys)settingsController.GetUserSettings().resetTableHotkeyModifier; this.resetTableKeyModifiers = User32.KeysToKeyModifiers(resetTableHotkeyModifiers); this.pauseTimerHotkey = (Keys)settingsController.GetUserSettings().pauseTimerHotkey; this.pauseTimerHotkeyModifiers = (Keys)settingsController.GetUserSettings().pauseTimerHotkeyModifier; this.pauseTimerKeyModifiers = User32.KeysToKeyModifiers(pauseTimerHotkeyModifiers); //Subscribe to relevant events from settingsController settingsController.ToggleHotkeysEnabled += ToggleHotkeysEnabled; settingsController.ResetTableHotkeyChanged += ReloadResetTableHotkey; settingsController.PauseTimerHotkeyChanged += ReloadPauseTimerHotkey; //Set tracker UI hotkey strings PopulateTrackerUIHotkeyLabels(); //Bind the hotkeys User32.RegisterHotKey(this.Handle, RESET_TABLE_HOTKEY_ID, resetTableKeyModifiers, resetTableHotkey); User32.RegisterHotKey(this.Handle, PAUSE_TIMER_HOTKEY_ID, pauseTimerKeyModifiers, pauseTimerHotkey); }
public void ReloadPauseTimerHotkey(object sender, EventArgs e) { //Get the hotkeys from settings this.pauseTimerHotkey = (Keys)settingsController.GetUserSettings().pauseTimerHotkey; this.pauseTimerHotkeyModifiers = (Keys)settingsController.GetUserSettings().pauseTimerHotkeyModifier; this.pauseTimerKeyModifiers = User32.KeysToKeyModifiers(pauseTimerHotkeyModifiers); //Set the hotkey labels in the tracker UI PopulateTrackerUIHotkeyLabels(); }
public static void Add(string name, User32.KeyModifiers keyModifier, Keys key, Control invokeHandleControl, HotKeyHandle hotKeyHandle) { HotKeyInfo hotKeyInfo = new HotKeyInfo(); hotKeyInfo.Name = name; hotKeyInfo.KeyModifiers = keyModifier; hotKeyInfo.Key = key; hotKeyInfo.InvokeHandleControl = invokeHandleControl; hotKeyInfo.HotKeyHandle = hotKeyHandle; Add(hotKeyInfo); }
private static int Register(User32.KeyModifiers keyModifiers, Keys key) { int newId = 0; Random random = new Random(); while (newId == 0 || hotKeys.Keys.Contains(newId)) { newId = random.Next(); } if (!User32.RegisterHotKey(innerWindowHandleBody.Handle, newId, keyModifiers, key)) { throw new Exception("Register hot key failed."); } return(newId); }
private void CleanHotKeyInfo_SwitchClickThread() { hotKeyModifiers_SwitchClickThread = User32.KeyModifiers.None; hotKey_SwitchClickThread = Keys.None; Change_textBox_SetSwitchHotKey_Text(GetHotKeyName()); }