none
win10屏保中任意按键押下,键盘钩子Hook的回调只为收到了WM_KEYUP RRS feed

  • 问题

  • 各位专家:

        遇到的一个问题,就是在Win10下屏保中时,任意键盘键押下后,屏保解除了,看下面的Trace0日志只有WM_KEYUP的而没有

    WM_KEYDOWN的日志,不起屏保时,任意键盘键押下后, 在Trace0日志里WM_KEYDOWN和WM_KEYUP都有,想不明白,是为什么,请各位专家帮忙给看一下。

    在一个程序中使用SetWindowHookEx注册一个全局低级键盘钩子代码如下:

    ::SetWindowsHookEx(WH_KEYBOARD_LL, TextLowLevelKeyboardProc, theApp.m_hInstance, 0);

    TextLowLevelKeyboardProc定义如下:

    LRESULT CALLBACK TextLowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam) { TRACE0("----------------------------TextLowLevelKeyboardProc--------------------------------\n"); if(nCode == HC_ACTION) {

    LPKBDLLHOOKSTRUCT lpKeyHook = (LPKBDLLHOOKSTRUCT)lParam; DWORD dwVkCode = lpKeyHook->vkCode;

    if((wParam == WM_KEYDOWN) || (wParam == WM_SYSKEYDOWN)) { TRACE0("----------------------------WM_KEYDOWN--------------------------------\n"); } if((wParam == WM_KEYUP) || (wParam == WM_SYSKEYUP)) { TRACE0("----------------------------WM_KEYUP--------------------------------\n"); } } return ::CallNextHookEx(gTextKeyboardHook, nCode, wParam, lParam); }



    2018年10月11日 8:09