Unfortunately, because of limitations in the Win32 API, you can't.
What skwire said. Windows has that information, but there is no API function to retrieve it. Your only bet is to stop individual apps and see which hotkeys disappear together with the apps.
Theoretically, a program might:
a) check registered hotkeys
b) kill a process
c) check hotkeys again
d) the difference in hotkeys will show those that the killed app used.
e) repeat from the top.
But it's such an ugly solution (force-killing processes) that I don't think anyone'd want to implement it
And of course under Vista and highter there will be processes which the user just cannot kill.
Maybe better: remove/disable as much as you can in the various Autostart sections (e.g. using Autoruns
), the check the hotkeys, start the suspect apps manually and check again.