首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

SetWindowsHookEx什么意思,该怎么处理

2012-12-17 
SetWindowsHookEx什么意思在mainform的formcreate里最后一个语句 kb_hook SetWindowsHookEx(WH_KEYBOARD

SetWindowsHookEx什么意思
在mainform的formcreate里最后一个语句 
kb_hook = SetWindowsHookEx(WH_KEYBOARD_LL,(HOOKPROC)KeyProc, HInstance, 0);
不知道做什么用的。
[最优解释]
SetWindowsHookEx(WH_KEYBOARD_LL,...
这是安装一个键盘低阶钩子。

具体的处理函数中,MainForm->OnKey 的代码看不到,不清楚具体拦截键盘的意图。
[其他解释]
long CALLBACK KeyProc(int code, WPARAM wParam, LPARAM lParam)
{
    KBDLLHOOKSTRUCT *pkbhs;
    if (code < 0)
        return CallNextHookEx(MainForm->kb_hook,code, wParam, lParam);
    pkbhs = (KBDLLHOOKSTRUCT*) lParam;
    MainForm->OnKey(pkbhs->vkCode,pkbhs->flags==0?false:true);
    return CallNextHookEx(MainForm->kb_hook,code, wParam, lParam);
}

加一个函数

[其他解释]
void __fastcall TMainForm::OnKey(int KeyCode,bool KeyupFlag)
{
    /*if(KeyupFlag)
        return;
    if(KeyCode>=112&&KeyCode<=133)
    {
        char url[1024];
        memset(url,0,sizeof(url));
        sprintf(url,"%s?callid=%s&ani=%s&dnis=%s&opid=%d&poolid=%d&pid=%s&cid=%s&key=%d&TaskID=%s&OPName=%s",
        WebIp,"0","0","0",OPForm->OperatorID,KeyCode,"0","0",KeyCode,"0",OPForm->OperatorName.c_str());
        //CppWebBrowser1->Navigate(WideString(url));
        CreateMdi();
        ObjBrowser->NavigateURL(url);
    } */
}
[其他解释]
有点意思哈,这是将记录的按键通过Web方式记录到某个服务器。象是远控的东西。
[其他解释]
键盘低阶钩子和键盘钩子什么区别?
[其他解释]
键盘低阶钩子比键盘钩子先触发,可以获得更多的信息。
键盘低阶钩子放在EXE中也可以起作用,而键盘钩子必须在DLL中。

热点排行