代码如下:
LRESULT CALLBACK KeyboardProcNoNext(
int nCode,
WPARAM wParam,//虚键代码
LPARAM lParam// 击键消息的信息

)
{

return TRUE;
}
单个键都能屏蔽,组合键就不行了,要屏蔽组合键应该怎么办?

解决方案 »

  1.   

    参考:Copy from MS KB Article
    HRESULT CALLBACK KeyboardProcNoNext(...)
    {
       HBDLLHOOKSTRUCT *p = (HBDLLKOOKSTRUCT)lParam;
       BOOL bctrl;//表示控制键是否按下
       switch(nCode)
       {
          case HC_ACTION:
          {
             bctrl = GetAsyncKeyState(VK_CONTROL)>>((sizeof(SHORT)*8)-1);
             if(p->vkCode == VK_ESCAPE && bctrl) //屏蔽ctrl+esc
                    return 1;
             if(p->vkCode == VK_TAB && p->flag & LLKHF_ALTDOWN)//屏蔽Alt+Tab
                    return 1;
             ...
       ...
    }     
      

  2.   

    HBDLLHOOKSTRUCT是什么类型?
    编译提示
     error C2065: 'HBDLLHOOKSTRUCT' : undeclared identifier
      

  3.   

    已结贴,使用低级钩子,屏蔽了除ctrl+del+alt的组合键