我感觉"Win"键不太普通,不是一般的拦截

解决方案 »

  1.   

    和其他的键盘捕获一样捕获VK_APPS。
      

  2.   

    用 SystemParam(..)把当前设置为屏保
    具体忘了,你看看msdn
      

  3.   

    LRESULT CALLBACK LowLevelKeyboardProc(int nCode, 
       WPARAM wParam, LPARAM lParam)
     {
        KBDLLHOOKSTRUCT *pkbhs = (KBDLLHOOKSTRUCT *) lParam;
        BOOL bControlKeyDown = 0;
    BOOL bWin =0;
        switch (nCode)
        {
            case HC_ACTION:
            {
    switch(wParam)
    {
    case WM_KEYDOWN:
    case WM_SYSKEYDOWN:
    if(pkbhs->vkCode == VK_LWIN || pkbhs->vkCode == VK_RWIN) //bWin)
    {
    return 1;
    }
            }
            default:
                break;
        }
        return CallNextHookEx (hhkLowLevelKybd, nCode, wParam, lParam);
    当然 hhkLowLevelKybd = ::SetWindowsHookEx(WH_KEYBOARD_LL,LowLevelKeyboardProc,(HINSTANCE)DllHandle,0);
    ::UnhookWindowsHookEx (hhkLowLevelKybd);
      

  4.   

    do you test
    you must give me 
    i try and sucess