private void RegisterHotKey() { //HotKeyHelper.RegisterHotKey(this.Handle, HotKeyHelper.HOTKEY_ID, HotKeyHelper.KeyModifiers.Control | HotKeyHelper.KeyModifiers.Shift, Keys.N); //HotKeyHelper.RegisterHotKey(this.Handle, HotKeyHelper.HOTKEY_ID, HotKeyHelper.KeyModifiers.None, Keys.F4); var startKeys = KeysHelper.ClearModifiers(keysTextBox시작_키.SelectedKeys); var startModifiers = KeysHelper.CovertToHotKeyModifiers(keysTextBox시작_키.SelectedKeys); var endKeys = KeysHelper.ClearModifiers(keysTextBox종료_키.SelectedKeys); var endModifiers = KeysHelper.CovertToHotKeyModifiers(keysTextBox종료_키.SelectedKeys); if (startKeys == endKeys && startModifiers == endModifiers) { if (startKeys != Keys.None) { HotKeyHelper.RegisterHotKey(this.Handle, HotKeyHelper.HOTKEY_ID_START_MACRO, startModifiers, startKeys); } } else { if (startKeys != Keys.None) { HotKeyHelper.RegisterHotKey(this.Handle, HotKeyHelper.HOTKEY_ID_START_MACRO, startModifiers, startKeys); } if (endKeys != Keys.None) { HotKeyHelper.RegisterHotKey(this.Handle, HotKeyHelper.HOTKEY_ID_END_MACRO, endModifiers, endKeys); } } }
/// <summary> /// 注册热键,窗体句柄,热键ID,辅助键,实键 /// </summary> private void RegisterHotKey() { const HotKeyModifiers hm = HotKeyModifiers.ModControl | HotKeyModifiers.ModAlt; var success = HotKeyHelper.RegisterHotKey(this.Handle, 0, hm, Keys.A); Console.WriteLine("--热键注册:" + success); if (success) { return; } MessageBox.Show("神话快捷截图,热键 Ctrl + Alt + A 已被其它程序占用\n使用替代方案 Alt + A", Resources.app_name, MessageBoxButtons.OK, MessageBoxIcon.Information); var success2 = HotKeyHelper.RegisterHotKey(this.Handle, 0, HotKeyModifiers.ModAlt, Keys.A); if (success2) { return; } var result = MessageBox.Show("神话快捷截图,热键 Alt + A 已被其它程序占用,程序将退出", Resources.app_name, MessageBoxButtons.OK, MessageBoxIcon.Information); if (result == DialogResult.OK) { Close(); } }
private void Main_Load(object sender, EventArgs e) { // Register Hotkey: Shift + F2 // ID: 100 HotKeyHelper.RegisterHotKey(this.Handle, 100, HotKeyHelper.KeyModifiers.Shift, Keys.F2); // Register Hotkey: Shift + F1 // ID: 101 HotKeyHelper.RegisterHotKey(this.Handle, 101, HotKeyHelper.KeyModifiers.Shift, Keys.F1); }
private void RegiseterHotKey(int hotKeyId, string hotkey) { string[] keys = hotkey.Split('+'); List <HotKeyHelper.KeyModifiers> keyModifiers = new List <HotKeyHelper.KeyModifiers>(); List <string> normalKey = new List <string>(); for (int i = 0; i < keys.Length; i++) { if (keys[i].ToLower() == "ctrl") { keyModifiers.Add(HotKeyHelper.KeyModifiers.Ctrl); } else if (keys[i].ToLower() == "alt") { keyModifiers.Add(HotKeyHelper.KeyModifiers.Alt); } else if (keys[i].ToLower() == "shift") { keyModifiers.Add(HotKeyHelper.KeyModifiers.Shift); } else { normalKey.Add(keys[i]); } } if (normalKey.Count == 1) // { Keys norKey = Keys.D1; int key = 0; try { if (int.TryParse(normalKey[0], out key)) { norKey = (Keys)System.Enum.Parse(typeof(Keys), "D" + normalKey[0]); } else { norKey = (Keys)System.Enum.Parse(typeof(Keys), normalKey[0]); } } catch (Exception) { return; } HotKeyHelper.KeyModifiers sysKeyModifiers = HotKeyHelper.KeyModifiers.None; for (int i = 0; i < keyModifiers.Count; i++) { sysKeyModifiers |= keyModifiers[i]; } HotKeyHelper.UnregisterHotKey(handle, hotKeyId); HotKeyHelper.RegisterHotKey(handle, hotKeyId, sysKeyModifiers, norKey); } }
/// <summary> /// 启用老板键 /// </summary> private void EnableHotKey() { System.Windows.Forms.Keys k = (System.Windows.Forms.Keys)Enum.Parse(typeof(System.Windows.Forms.Keys), DataUtil.Config.sysConfig.hotKey.ToString().ToUpper()); HotKeyHelper.KeyModifiers m = HotKeyHelper.KeyModifiers.None; if (DataUtil.Config.sysConfig.hotKeyCtrl) { m = HotKeyHelper.KeyModifiers.Ctrl; } if (DataUtil.Config.sysConfig.hotKeyAlt) { if (m == HotKeyHelper.KeyModifiers.None) { m = HotKeyHelper.KeyModifiers.Alt; } else { m = m | HotKeyHelper.KeyModifiers.Alt; } } if (DataUtil.Config.sysConfig.hotKeyShift) { if (m == HotKeyHelper.KeyModifiers.None) { m = HotKeyHelper.KeyModifiers.Shift; } else { m = m | HotKeyHelper.KeyModifiers.Shift; } } IntPtr handle = new WindowInteropHelper(this).Handle; if (HotKeyHelper.isRegistered) { HotKeyHelper.UnregisterHotKey(handle, HotKeyHelper.hotKeyId); } HotKeyHelper.isRegistered = HotKeyHelper.RegisterHotKey(handle, HotKeyHelper.hotKeyId, m, k); HotKeyHelper.InstallHotKeyHook(this); }
private void DisableContent() { if (this.calledClosing) { return; } if (!HotKeyHelper.keyRegistered) { if (!HotKeyHelper.RegisterHotKey((uint)this.config.ModifierKey, this.config.KeyCode)) { MessageBox.Show("Couldn't register configured HotKey. Maybe something is already registered on this combination.\r\nClosing myself.", this.Title, MessageBoxButton.OK, MessageBoxImage.Error); this.calledClosing = true; this.Close(); } } this.focusedListBoxItem = false; this.SearchBox.Text = string.Empty; this.viewModel.SelectedIndex = 0; this.Visibility = Visibility.Collapsed; this.SizeToContent = SizeToContent.Manual; }
/// <summary> /// 初始化注册快捷键 /// </summary> /// <param name="hotKeyModelList">待注册热键的项</param> /// <returns>true:保存快捷键的值;false:弹出设置窗体</returns> private bool InitHotKey(HotKeyModel hotKeyModel = null) { // 注册全局快捷键 return(HotKeyHelper.RegisterHotKey(hotKeyModel, m_Hwnd)); }
private void OptionsView_Closed(object sender, EventArgs e) { HotKeyHelper.RegisterHotKey((uint)this.config.ModifierKey, this.config.KeyCode); }
private void AboutView_Closing(object sender, System.ComponentModel.CancelEventArgs e) { HotKeyHelper.RegisterHotKey((uint)this.config.ModifierKey, this.config.KeyCode); }