I\'m having some problems with a WH_KEYBOARD_LL
hook :
The reason why I\'m using a global LL hook is not important I just need it for my app (I tried other
The hook callback is made on the same thread that called SetWindowsHookEx(). That bit of magic requires that thread to pump a message loop. Which is the rub, your timer callback method is called from a threadpool thread. It doesn't pump, it's not even around long enough to ever be able to get the hook callback.
Invoke to your UI thread or use a synchronous timer. Or consider just temporarily disabling whatever you do in the hook callback instead of completely disabling or replacing the hook, that certainly makes most sense.
For what it's worth, I use GetModuleHandle(0)
for SetWindowsHookEx in my code. I have no idea if this is your problem -- my code is single-threaded.
You could check the foreground window in your hook function instead, and get rid of the timer thread altogether. That's what I do in TouchCursor. You can look at my code on SourceForge -- Line 553 for the hook function.