KeyPressCounter silently counts your keyboard and mouse activity while monitoring real-time system performance — all locally, with no data ever leaving your machine.
Six years of Windows internals distilled into a single, self-contained tray utility.
Counts keystrokes and mouse clicks in real time using SharpHook's global hook. No key identities stored — only integer totals.
Seven Windows Performance Counters sampled every second, with a 60-second rolling history graph rendered in GDI+.
P/Invokes GetLastInputInfo from User32.dll to detect inactivity. Configurable threshold keeps stats meaningful.
Two timers keep a persistent record of your activity, automatically rotating into daily summaries at midnight.
JSON configuration serialized to %APPDATA% with Windows startup registry integration and auto-sync on every launch.
Runs unobtrusively with a rich context menu. A three-tab WinForms dashboard opens on double-click with 1-second refresh.
Every component maps to a specific, well-understood Windows API — no fragile third-party middleware.
A TaskPoolGlobalHook runs on a background thread, raising KeyPressed and MousePressed events. Each event calls Counter.Increment() behind a lock — only integers ever touch memory.
Seven PerformanceCounter objects are initialized at startup and sampled every second. The primary network adapter is auto-detected via NetworkInterface.
GetLastInputInfo is P/Invoked to compute idle time in milliseconds. When idle time exceeds the threshold, hook handlers return early and log writes are skipped entirely.
An activity timer fires every N seconds to write a log entry. A daily summary timer fires once at midnight, writes totals, resets counters, and re-arms for the next midnight.
AppConfig serializes to a JSON file at %APPDATA%. WMI queries gather CPU, RAM, and GPU details at startup and cache them for instant display in the dashboard.
KeyPressCounter was built with a single guiding principle: your keystrokes belong to you.
%APPDATA%. Nowhere else.
Grab KeyPressCounter-vX.X.X-win-x64.zip from the GitHub Releases page.
Required if not already installed. Verify with dotnet --version in a terminal.
Extract the ZIP to any folder and double-click MWH.KeyPressCounter.exe. The app appears in the system tray immediately.
Right-click the tray icon → Settings → Start with Windows to enable auto-start on login.
Free. Open source. Runs silently in the background. Works entirely offline.