Exemple #1
0
        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);
                }
            }
        }
Exemple #2
0
        /// <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();
            }
        }
Exemple #3
0
        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);
        }
Exemple #4
0
        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);
        }
Exemple #6
0
        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;
        }
Exemple #7
0
 /// <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);
 }
Exemple #9
0
 private void AboutView_Closing(object sender, System.ComponentModel.CancelEventArgs e)
 {
     HotKeyHelper.RegisterHotKey((uint)this.config.ModifierKey, this.config.KeyCode);
 }