Log in

View Full Version : WH_KEYBOARD_LL not capture all key events


javitobcn
03-28-2005, 08:30 PM
WH_KEYBOARD_LL not capture all key events

I have a problem. I'm using a WH_KEYBOARD_LL hook in order to capture all system keyboard events.
I create the hook without problems, but when I want to delete it, the function unhookWindowsHookEx()
returns a FALSE (that wants to say error in the function), but the hook is correctly deleted,
because if after I create another WK_KEYBOARD_LL hook, it will be created correctly.

But my main problem is that in the LowLevelKeyboardProc (the hook process), I cannot detect
all keyboard events of all the applications of my pda pocket pc. I only detect the message
WM_KEYDOWN in a few number of keys such as: caps lock, shift, esc, and so on. And I want to detect
all keyboard events. What do you think that could be the problem?

I ask for your help, please. It's very important for me.

Here you have the declaration of the LowLevelKeyboardProc:

__declspec(dllexport) LRESULT CALLBACK LowLevelKeyboardProc (int code, WPARAM wParam, LPARAM lParam)

Create the hook:

m_hHkKeyboard = m_pfSetWindowsHook(WH_KEYBOARD_LL, LowLevelKeyboardProc, aInstance, (DWORD)NULL);

where: m_pfSetWindowsHook is a pointer to the SetWindowsHookExW function;

and delete the hook:

m_pfUnhookWindowsHook(m_hHkKeyboard)

where: m_pfUnhookWindowsHook is a pointer to the UnHookWindowsHookEx function;

I'm waiting for your answers. Thank you very much.

Sincerely,

javitobcn,

paulzazzarino
04-15-2005, 06:54 PM
As usual there is more than one way to skin a cat:

see article @

http://www.pocketpcdn.com/articles/handle_hardware_keys2.html

See the registerhotkey unregisterhotkey f(x). Note the 2nd part of the article.