SkillAgentSearch skills...

DoubleClickFix

Mitigates double-click issues caused by malfunctioning mice.

Install / Use

/learn @nenning/DoubleClickFix
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

🖱️ Double-click Fix

<img align="right" src="media/icon.png" width="200" height="200" />

.NET   GitHub release (latest by date)   License   Microsoft Store

A lightweight tool that fixes accidental double-clicks caused by a worn-out or faulty mouse.

Mentioned in PCWorld and PC-Welt (German): "you can try using free software solutions such as Double-Click Fix"

New in release 1.6:

  • 🚫 Per-device Ignore List – move the cursor with a second mouse or touchpad and check "Ignore this device" to exclude it from filtering. Saved permanently.
  • 🖥️ Remote Desktop Support – enable the option in the UI to disable click filtering during RDP sessions.
  • 🌗 Dark / Light Theme – choose between dark, light, or system theme in the settings.
  • 🌐 Language Switcher – change the UI language directly from the settings without restarting.

🛍️ Get it from the Microsoft Store!


📋 Table of Contents


✨ Features

  • Double-click filtering — filters accidental clicks per button with a configurable threshold. Default: 50 ms.
  • Drag & Drop Fix — prevents faulty mice from dropping during a drag gesture.
  • Mouse Wheel Fix — filters spurious reverse-direction scroll events.
  • Per-device Ignore List — exclude specific devices (e.g. touchpad, second mouse) from filtering.
  • Remote Desktop Support — optionally bypass filtering during RDP sessions.
  • Tray icon — runs silently in the background; double-click to open settings.
  • Start with Windows — registers to run automatically at startup.
  • Update notifications (standalone) — checks GitHub for new releases on startup and shows a notification if one is available.

logo


🖥️ System Requirements

  • Operating System: Windows 10 or later.
  • .NET Runtime: .NET 10 Desktop Runtime or later (usually installed automatically).

🚀 Installation

Install from Microsoft Store (recommended)

  1. Go to the Store page and install it.

Manual Setup

  1. Download: Grab the latest release from the Releases page.
  2. Unzip & Run: Extract the files and execute the .exe.
    • Settings are stored in the registry under HKEY_CURRENT_USER\Software\DoubleClickFix.
    • If you move the app to a different folder, deregister and re-register it to restore the startup entry.

Build from Source

Clone the repository and build with Visual Studio or the .NET CLI.


⚙️ Configuration

🛠️ Settings

  • Per-button delay: Set the minimum time (in ms) between clicks for each button. Clicks arriving faster than this threshold are filtered out. Default: 50 ms, left button only.
  • Fix dragging issues: Enable only if your mouse drops items unexpectedly during a drag. While in drag-lock mode, spurious button events are ignored; a short pause at the end completes the release.
  • Drag start delay: Minimum drag duration (in ms) before entering drag-lock mode. Default: 1000 ms.
  • Drag release delay: Minimum time (in ms) the mouse must stay still before the button release is registered. You can also click manually to exit drag-lock mode. Default: 150 ms.
  • Ignore this device: Move the cursor with any device you want to exclude (e.g. a secondary mouse or graphics tablet), then check "Ignore this device". Saved permanently — survives reboots and Bluetooth reconnects.
  • Workaround for touch devices: Touch and touchpad clicks pass through unfiltered by default. Enable Allow double-clicks with 0 ms gap only if your touchpad or touchscreen isn't working correctly.
  • Remote Desktop sessions: Enable Don't filter clicks in remote desktop sessions if you control this PC via RDP and double-clicks aren't working.
  • Theme: Choose dark, light, or system (follows Windows setting).
  • Language: Switch the UI language directly from the settings.

💡 Tips

  • Check the logs for the elapsed time between clicks and which double-clicks were filtered.
  • Adjust the threshold until faulty clicks are caught while your normal double-click speed still works.
  • Use the test area in the UI to verify your settings (try single-clicking, double-clicking, selecting text, and dragging).

🔍 How It Works: Filtering Mouse Clicks

The application intercepts mouse events at a low level to distinguish intentional clicks from "bouncing" or "chattering" caused by a faulty mouse switch.

  1. Low-Level Mouse Hook: Registers a WH_MOUSE_LL hook to intercept mouse events system-wide before they reach other applications.
  2. Event Interception: Every mouse event (WM_LBUTTONDOWN, WM_MOUSEMOVE, etc.) is captured by a callback function.
  3. Double-Click Filtering:
    • When a mouse button down event occurs, the application measures the time elapsed since the last corresponding up event for that same button.
    • If this duration is shorter than the user-defined threshold (e.g., 50 ms), the event is considered an erroneous double-click and is filtered out — the system and other applications never receive it.
    • The matching up event for a suppressed down is also suppressed, preventing orphaned release events from reaching applications.
    • If the duration is longer than the threshold, the click is considered intentional and passed along as usual.
  4. Drag & Drop Correction: Faulty mice can send spurious "up" events while holding a button, interrupting drags. The "Fix dragging issues" feature addresses this:
    • Entering Drag-Lock: After pressing and holding a button and moving beyond a small distance, the app enters drag-lock mode for that button.
    • Suppressing Jitter: While in drag-lock, spurious down or up events are ignored so the drag isn't accidentally interrupted.
    • Releasing the Drag: The drag ends only after the mouse has been still for the configured release delay, at which point a genuine "up" event is sent.
  5. Mouse Wheel Filtering: Faulty wheels can scroll in the wrong direction momentarily, causing a jittery effect.
    • Direction-Aware Filtering: The app tracks the last scroll direction (up/down or left/right).
    • Time-Based Debouncing: A scroll in the opposite direction within the threshold is treated as jitter and ignored.
    • Preserving Fast Scrolling: Intentional same-direction scrolling is never affected.
  6. Forwarding Events: Events that pass filtering are forwarded via CallNextHookEx, ensuring normal behavior for all other applications.

🤝 Contributions

Contributions are welcome! Feel free to open issues, submit pull requests, or suggest improvements via the Issues tab.


📜 License

This project is distributed under the MIT License.


🎮 Compatibility with Anti-Cheat Software (VAC, EAC, BattlEye, etc.)

DoubleClickFix uses a WH_MOUSE_LL low-level mouse hook — the same mechanism used by accessibility tools and hardware drivers. It does not:

  • Inject code into other processes.
  • Read or write game memory.
  • Modify game files or provide any gameplay advantage.

Anti-cheat systems (VAC, EAC, BattlEye) focus on cheat signatures, memory manipulation, and code injection — none of which apply here. The risk is considered very low.

Disclaimer: No third-party tool can be guaranteed safe with all future anti-cheat systems. Use alongside protected games is at your own discretion.

For official information, see Valve's VAC documentation.


🛠️ Technical Notes

Technical details — mostly for development.

🖥️ Command-Line Arguments

  • -nohook – Runs the app without registering the mouse hook. Useful for UI testing or debugging (automatically applied in debug mode).
  • -interactive or -i – Displays the UI on startup. Useful for testing (automatically applied in debug mode).

📦 Creating a Release

GitHub

  • To create a GitHub release (zip), run:
    • git tag -a v1.0.1.0
    • git push origin v1.0.1.0
  • This will trigger t

Related Skills

View on GitHub
GitHub Stars192
CategoryDevelopment
Updated2d ago
Forks16

Languages

C#

Security Score

95/100

Audited on Apr 6, 2026

No findings