Exemple #1
0
        /// <summary>
        /// 注册热键
        /// </summary>
        /// <param name="control"></param>
        /// <param name="key"></param>
        public void Register(ModifierKeys control, Key key)
        {
            try
            {
                Unregister();
                ControlKey = (uint)control;
                Key        = (uint)KeyInterop.VirtualKeyFromKey(key);
                KeyID      = (int)ControlKey + (int)Key * 10;

                if (KeyIDList.ContainsKey(KeyID))
                {
                    throw new NotImplementedException(TextResource.Hotkey_Is_Already_Registered);
                }

                //注册热键
                if (!Win32.HotKey.RegisterHotKey(Handle, KeyID, ControlKey, Key))
                {
                    throw new NotImplementedException(TextResource.Registration_HotKey_Failure);
                }

                KeyIDList.Add(KeyID, this);
            }
            catch (Exception)
            {
                throw new NotImplementedException(TextResource.Registration_HotKey_Failure);
            }
        }
Exemple #2
0
 /// <summary>
 /// 解除热键
 /// </summary>
 /// <param name="control"></param>
 /// <param name="key"></param>
 public void Unregister()
 {
     if (KeyID > 0)
     {
         Win32.HotKey.UnregisterHotKey(this.Handle, this.KeyID);
     }
     KeyIDList.Remove(KeyID);
     KeyID = 0;
 }
Exemple #3
0
 /// <summary>
 /// 解除全部热键
 /// </summary>
 public static void UnregisterAll()
 {
     foreach (var item in KeyIDList)
     {
         Win32.HotKey.UnregisterHotKey(item.Value.Handle, item.Value.KeyID);
         item.Value.KeyID = 0;
     }
     KeyIDList.Clear();
 }