public void Dispose() { if (!HotKeyMethods.UnregisterHotKey(_hwnd, RegistrationKey)) { Log.Write("Failed to unregister hotkey #{0}", RegistrationKey); } }
private void RegisterHandler(string spec, HotKeyHandler handler) { if (string.IsNullOrEmpty(spec)) { return; //this can happen and is allowed => simply don't register } if (handler == null) { throw new ArgumentNullException(); } int modifiers = 0, keyCode = 0; try { HotKeyMethods.TranslateStringToKeyValues(spec, out modifiers, out keyCode); } catch (ArgumentException) { //TODO: swallowed exception return; } var reg = HotKeyHandlerRegistration.Register(Form, keyCode, modifiers, handler); if (reg != null) { _handlers.Add(reg.RegistrationKey, reg); } }
/// <summary> /// Registers a new hotkey and returns a handle to the registration. /// </summary> /// <returns>Returns null on failure.</returns> public static HotKeyHandlerRegistration Register(Form owner, int keyCode, int modifiers, HotKeyHandler handler) { var key = ++_lastUsedKey; if (!HotKeyMethods.RegisterHotKey(owner.Handle, key, modifiers, keyCode)) { Log.Write("Failed to create hotkey on key {0} with modifiers {1}", keyCode, modifiers); return(null); } return(new HotKeyHandlerRegistration(owner.Handle, key, handler)); }