Git Product home page Git Product logo

hotkey-detective's Introduction

Hotkey Detective

Hotkey Detective is a small utility for investigating what application holds a global hotkey under Windows 8 and later.

The utility has been created as a matter of need, because I couldn’t find any working and simple program that would just show me what process has stolen my hotkey, and prevents me from "zażółcania gęślej jaźni".

Quick guide

Hotkey Detective is shipped as a ZIP archive and can be downloaded from the "Releases" page.

Every archive contains two directories: x64 and x86. For x64 Windows, you will of course run the executable from the x64 directory but if it didn’t find the hotkey, then try x86 version. For x86 Windows you don’t have much choices, you just run the x86 version.

Running steps

  1. Enter the appropriate (x64 or x86) directory.

  2. Run HotkeyDetective.exe as administrator.

  3. If the window pops up without errors, press the stolen hotkey and Hotkey Detective will show you a path to the guilty process.

Some theory for curious

The problem

When you Google "show hotkey process", you’ll surely get many results that propose using Hotkey Explorer to solve your problem. This is a powerful tool, I used this many times, but on Windows 7. Apparently Hotkey Explorer doesn’t work very well on Windows 8 and later.

The core of the problem is probably the way how Hotkey Explorer finds out what program holds which hotkey. It essentially tries every possible combination and checks what program will react. Apparently Windows 7 had a possibility to inhibit the keystrokes, but it’s no longer valid for Windows 8+, and all keystrokes are sent to the system and other programs. Can you imagine the effect?

The solution

Hotkey Detective uses a similar approach, it hooks to every process and waits for it to receive a hotkey command. The biggest difference is that Hotkey Detective doesn’t force trying all hotkeys. You must press the stolen hotkey and Hotkey Detective will show you what process received the command.

FAQ

I don’t see any results in the table.

Try running both versions (x86 and x64) when you are using x64 Windows. If you are unsure about your system’s platform, still try both of them, x64 won’t run on x86 platform anyway.

Remember to always run it with administrator privileges.

I did all of the above, and I still don’t see any results.

Make sure the hotkey you are trying is truly global. By "truly" I mean it’s registered with the system and can be triggered even when the owning application is in the background.

A good example is Ctrl + T in browsers, this works only when the browser is in the foreground. Hotkey Detective will not recognize this keystroke as it’s not registered with the system, only the browser knows about this combination.

Why can’t I remove Hotkey Detective after using?

The system loads the DLL shipped with Hotkey Detective into every process in order to spy on hotkeys. When Hotkey Detective is closed, the DLL is still present in the processes, and you simply can’t remove something the system is using.

Unloading the DLL from foreign processes is tricky and I’m currently working on it. For the time being, as a workaround I can only suggest restarting your system.

Changelog

1.1.0

Added a warning message when trying to run Hotkey Detective as a non-admin user. This will greatly improve user experience, especially among users not reading readmes (I’m not reading them too, though).

1.0.0

The first major that brings up a basic but friendly UI in place of the scary console.

0.1.0

The very first version of Hotkey Detective, a simple console application.

hotkey-detective's People

Contributors

itachilab avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.