/// <summary> /// 注销 /// </summary> /// <param name="modifierKey">组合键</param> /// <param name="key">键</param> /// <returns></returns> public bool Unregister(Enumeration.ModifierKeys modifierKey, Keys key) { //热键ID ushort id = GlobalAtom.Find(this.GetHotKeyName(modifierKey, key)); //热键存在 if (this.HotKeyTable.ContainsKey(id)) { //注销 if (HotKeyManager.UnregisterHotKey(this.Owner.Handle, id)) { //从热键表中删除 this.HotKeyTable.Remove(id); //删除对应的全局原子 GlobalAtom.Delete(id); return(true); } else { return(false); } } else { //热键不存在 return(false); } }
/// <summary> /// 获取热键名称标识 /// </summary> /// <param name="modifierKey">组合键</param> /// <param name="key">键</param> /// <returns></returns> private string GetHotKeyName(Enumeration.ModifierKeys modifierKey, Keys key) { return(string.Format("HotKey({0}+{1})@Plusal", (uint)modifierKey, (uint)key )); }
/// <summary> /// 注册 /// </summary> /// <param name="modifierKey">组合键</param> /// <param name="key">键</param> /// <param name="hotKeyEventHandler">热键事件委托</param> /// <returns></returns> public bool Register(Enumeration.ModifierKeys modifierKey, Keys key, HotKeyEventHandler hotKeyEventHandler) { //热键ID ushort id = GlobalAtom.Add(this.GetHotKeyName(modifierKey, key)); //注册 if (HotKeyManager.RegisterHotKey(this.Owner.Handle, id, (uint)modifierKey, (uint)key)) { //保存到热键表中 this.HotKeyTable.Add(id, hotKeyEventHandler); return(true); } else { return(false); } }