void IGlobalKeyEventListener.OnEvent(GlobalKeyboardEventArgs e, ModifierKeys modifierKeys) { if (e.State == KeyStates.Down && modifierKeys == ModifierKeys && e.NotifyKey == Key) { Listener(this); } }
private void KeyboardHookHelper_NotifyKeyStateChanged(object?sender, GlobalKeyboardEventArgs e) { var modifierKeys = e.DownStateKeys.GetModifierKeys(); foreach (var listener in globalKeyListeners) { listener.OnEvent(e, modifierKeys); } }
void IGlobalKeyEventListener.OnEvent(GlobalKeyboardEventArgs e, ModifierKeys modifierKeys) { if (e.State == KeyStates.Down && modifierKeys == ModifierKeys && e.NotifyKey == Key && !lastDownTime.HasValue) { lastDownTime = e.MessageTime; } else if (e.State == KeyStates.Toggled && e.NotifyKey == Key && lastDownTime.HasValue) { Listener(this, e.MessageTime - lastDownTime.Value); lastDownTime = null; } }