Tool to find which programs are using keyboard hooks?

I am looking for a good tool which finds all the programs which are hooking to the keyboard handler.

Hotkey Commander is not showing all the programs. I have two apps running and they have a global hotkey defined and working but these program are not listed in Hotkey Commander.

Deep System Explorer is not finding some driver and displays an error.

Any others?

I am using windows 7 64bit.


I also looked into this problem recently and the closest I got to an answer was to find out that there apparently is no way to programmatically ask Windows who has registered keyboard hooks (although a an answer to a similar-but-not-marked-duplicate question on StackOverflow links to an article that claims it is possible). Most programs designed to do this simply look at all of your shortcut (.lnk) files (generally in your Start Menu) to see which ones have had hotkeys assigned--but that is almost useless.

In my case, I was unable to use several keyboard shortcuts that I normally use all the time in Eclipse and WinSplit Revolution (WinSplit even complained on startup about each of the keyboard shortcuts that had already been taken by someone else). Although I didn't find a program that could find out who hijacked my keyboard shortcuts, I did find a workaround.

  1. For every single icon in your system tray (the area of the taskbar on the right/bottom of your taskbar), right-click or double-click and go into the options (sometimes called "settings").
  2. Go through every page of options, looking for any mention of keyboard shortcuts or hotkeys.
  3. Disable the ones you don't use in each system tray applet.
  4. In some cases, there will be no option to disable the hotkeys, and your only option will be to disable that program on startup or uninstall the program.

Ultimately, I had to disable hotkeys for about half a dozen programs, and there was even one program I had to uninstall. A few of the programs whose hotkeys I had to disable were SnagIt (a screenshot tool), DisplayFusion (a taskbar enhancer), Skype, my video card control panel applet, and TrueCrypt.


Have you tried Spy++? It can help you out with this.


Spy++ seems to be included in the Windows SDK, but I cannot seem to find a download link anymore. I'll keep looking; in the mean-time, here are some other tools to check out:
  • .NET Event Spy - A tool that hooks into and monitors events raised on any .NET object -This tool only works with .NET-driven applications.

  • Managed Spy - A Windows Forms alternative to Spy++