Ejemplo n.º 1
0
        private void OnShortcutDetected(IEnumerable <Keys> keys)
        {
            if (!IsShortcutActivator(keys))
            {
                if (!Visible)
                {
                    return;
                }

                BeginInvoke(new MethodInvoker(Hide));

                if (_isListening)
                {
                    try
                    {
                        foreach (var actionDefinition in GetSettings()
                                 .ActionDefinitions.Where(
                                     actionDefinition => actionDefinition.Shortcut.IsSameAs(keys)
                                     ))
                        {
                            IconManager.Alert(1000, $"Starting {actionDefinition.Name}...", ToolTipIcon.Info);
                            actionDefinition.Execute();
                        }
                    }
                    catch (Exception e)
                    {
                        IconManager.Alert(3000, e.Message, ToolTipIcon.Error);
                    }
                }

                _isListening = false;

                return;
            }

            _isListening = true;
            BeginInvoke(new MethodInvoker(Show));

            BeginInvoke(new MethodInvoker(() => SetForegroundWindow(Handle)));
        }