public bool Hook(Keys key, ModifierKeys modifiers = ModifierKeys.None, KeyHookDelegate pressed = null) { if (_timer.Enabled) { _timer.Stop(); } var exists = _keys.Find(x => x.Key == key && x.Modifiers == modifiers) != null; if (!exists) { _keys.Add(new KeyHook(key, modifiers, pressed)); _keys.Sort((k1, k2) => new HookComparer().Compare(k1, k2)); } if (_keys.Count > 0) { _timer.Start(); } return(!exists); }
public KeyHook(Keys key, ModifierKeys modifiers, KeyHookDelegate pressed = null) { Key = key; Modifiers = modifiers; Pressed = pressed; }