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))); }