public RepeatKeyRecord(KeyRecord Repeated, KeystrokesSettings Settings) { this.Repeated = Repeated; _settings = Settings; Increment(); }
void OnKeyUp(object Sender, KeyEventArgs Args) { if (!_settings.Display) { _records.Clear(); return; } var record = new KeyRecord(Args, _keymap); var display = record.Display; if (display == _keymap.Control || display == _keymap.Alt || display == _keymap.Shift) { if (_records.Last?.Display == display) { _records.Last = new RepeatKeyRecord(record, _settings); } else if (_records.Last is RepeatKeyRecord repeat && repeat.Repeated.Display == display) { repeat.Increment(); } else if (_modifierSingleDown) { _records.Add(record); } }
TextWriter InitKeysToTextFile(string FileName, Func <TimeSpan> Elapsed) { var dir = Path.GetDirectoryName(FileName); var fileNameWoExt = Path.GetFileNameWithoutExtension(FileName); var targetName = $"{fileNameWoExt}.keys.txt"; var path = dir == null ? targetName : Path.Combine(dir, targetName); var keystrokeFileStream = new FileStream(path, FileMode.OpenOrCreate, FileAccess.Write, FileShare.Read); var textWriter = new StreamWriter(keystrokeFileStream); _hook.KeyDown += (S, E) => { if (!_keystrokesSettings.Display) { return; } var record = new KeyRecord(E, _keymap); _textWriter.WriteLine($"{Elapsed.Invoke()}: {record.Display}"); }; return(textWriter); }