コード例 #1
0
 public void Dispose()
 {
     if (!HotKeyMethods.UnregisterHotKey(_hwnd, RegistrationKey))
     {
         Log.Write("Failed to unregister hotkey #{0}", RegistrationKey);
     }
 }
コード例 #2
0
        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);
            }
        }
コード例 #3
0
            /// <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));
            }