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.
- 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").
- Go through every page of options, looking for any mention of keyboard shortcuts or hotkeys.
- Disable the ones you don't use in each system tray applet.
- 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.