A Windows utility that turns any key into a "double-press modifier." Hold the configured base key while pressing another key, and that key is registered twice in rapid succession.
- Configurable base key -- set any virtual-key code as the modifier trigger
- Global low-level hook -- works in any application, no focus required
- Scan-code injection -- compatible with OEM keys that fail under virtual-key-only methods
- Self-suppressing -- original key events are consumed; only the doubled output reaches the system
- No tray icon, no UI -- runs minimized with a single configurable window title for verification
The application installs a WH_KEYBOARD_LL hook. When the base key is pressed and held, every subsequent key-down event is intercepted: the original event is suppressed, and two synthetic key events (down + up, using scan codes) are injected in its place. The base key itself is also suppressed so it never reaches the active window.
Key up events from the doubled key are suppressed to prevent stray repeats.
Edit MainForm.cs, line 13:
private static readonly int BaseKeyVK = 0xBA;Change the hex value to any Windows virtual-key code. Common examples:
| Key | VK Code |
|---|---|
| Right Alt | 0xA5 |
| Right Ctrl | 0xA3 |
| Pause/Break | 0x13 |
| OEM ; | 0xBA |
Rebuild after changing the value.
dotnet build -c Release
Requires the .NET 7 SDK and Windows (the project targets net7.0-windows and uses WinForms + P/Invoke).
- Launch
DoubleKeyPress.exe - Hold the configured base key and press any other key
- The pressed key registers twice instead of once
- To quit, use Task Manager -- the application has no visible UI
MIT -- (c) 2026 Wolren