What's the easiest way I could notify you?

By the way, all copies of HotkeyNet install a keyboard hook every time they launch, so if you know the program launched, you know it installed a hook. And that's the only time. The reason the clients do that is because they have the same abilities as the server. With HotkeyNet the server/client distinction applies only to the communications protocol, not to sending or receiving commands.

It's harder to know if I installed a mouse hook because I only bother with that if the user defined hotkeys with mouse button triggers. And that can get reinstalled without relaunching the program. Do you need to worry about that? i saw you wrote that you're using RawInput in your new program.

I wonder if there's some way to find out a hook's location in the chain.