LRESULT CALLBACK KeyboardProc(int nCode,WPARAM wParam,LPARAM lParam)
{
BOOL fEatKeystroke = FALSE; 
LRESULT Result = CallNextHookEx(Hook,nCode,wParam,lParam);
if(nCode==HC_ACTION)
{
if(lParam & 0x80000000)
{
if ((wParam >=0X70) && (wParam<=0X7B))
{
fEatKeystroke = TRUE;
}
}
}
return (fEatKeystroke?TRUE:Result);   
}
上面的函数执行一切正常,钩子运行也正常,我要评比F1-F12的键,通过检查,程序已经成功执行到了fEatKeyStroke = TRUE这里,但是问题来了,虽然截获了这个键,但是却屏蔽不了这个键,我按F1,截获成功,执行我自己定的操作,然后他还是会弹出当前程序的帮助文档,我应该怎么做?return true不灵a

解决方案 »

  1.   

    if ((wParam >=0X70) && (wParam<=0X7B))
    这个判断显然有问题
      

  2.   

    iVK = pKey->vkCode;
    iSC = pKey->scanCode;
    ...if(iVK==91 && iSC==91) return -1; // LEFT WIN
    if(iVK==92 && iSC==92) return -1; // RIGHT WIN
    if(iVK==93 && iSC==93) return -1; // RIGHT MOUSE KEY
    if(iVK==164 && iSC==56) return -1; // ALT
    if((iVK>=112 && iVK<=113))return -1; // F1~F2
    if(iVK==115) return -1; // F4
    if((iVK>=117 && iVK<=118)) return -1; // F6~F7
    if((iVK>=120 && iVK<=123))return -1; // F6~F12
    if(iVK==9 && iSC==15) return -1; // TAB KEY
    if(iVK==27 && iSC==1) return -1; // ESC KEY
      

  3.   

    我真服了,,我说那句都没问题了,,,不过return -1没试过,,试试
      

  4.   

    LRESULT Result = CallNextHookEx(Hook,nCode,wParam,lParam);
    你这里都已经传给下一层钩子了你还怎么屏蔽呢?
      

  5.   

    这是我改完的,还是不灵
    BOOL fEatKeystroke = FALSE; 
    if(nCode==HC_ACTION)
    {
    if(lParam & 0x80000000)
    {
    if ((wParam >=0X70) && (wParam<=0X7B))
    {
    fEatKeystroke = TRUE;
    }
    }
    }
    return (fEatKeystroke?TRUE:CallNextHookEx(Hook,nCode,wParam,lParam));   
      

  6.   

    return (fEatKeystroke?TRUE:CallNextHookEx(Hook,nCode,wParam,lParam));
      

  7.   

    我直接在这个函数里写return(true);都不起作用!我的天
      

  8.   

    你下的什么钩子?是WH_KEYBOARD还是······
      

  9.   

    Hook = (HHOOK)SetWindowsHookEx(WH_KEYBOARD, (HOOKPROC)KeyboardProc, theApp.m_hInstance, 0);
      

  10.   

    高手门,帮我分解一下啊,调用的时候是在一个DLG窗口的BOOL CServiceDlg::OnInitDialog()方法里挂了钩子
      

  11.   

    F1是个特例,好象是由于热键链,帮你找了一篇
    http://www.bczs.net/xml/2006/4/24/4708810.xml
      

  12.   

    jasonshark(All Gone) 对了,其实程序都已经好用了,,但是我使用通过F1测试,所以很恶心。。