键盘钩子用键盘钩子 和 用PreTranslateMessage 两种方法捕获键盘不同按键时的响应,有何不同之处?

键盘钩子  时间:2022-02-23  阅读:()

用键盘钩子 和 用PreTranslateMessage 两种方法捕获键盘不同按键时的响应,有何不同之处?

钩键盘按键消息 键盘钩子的话用SetWindowHoolEx,第一个为钩子类型,键盘的话就是WH_KEYBOARD_LL,流程的话就是安装钩子,设置钩子消息处理回调函数,然后在回调函数中处理消息。不难的。 /************************************************ *@函数名: MyTaskKeyHookLL *@函数功能: 键盘钩子回调函数 *@函数参数: nCode, wp, lp *@入参: * nCode:钩子代号 * wp:消息,如,按键按下消息,按键弹起消息等 * lp:消息事件的具体结构指针 *@出参: * *@返回值: * *@备注: **************************************************/ LRESULT CALLBACK MyTaskKeyHookLL(int nCode, WPARAM wp, LPARAM lp) { return 1; // KBDLLHOOKSTRUCT *pkh = (KBDLLHOOKSTRUCT *) lp; // // if (nCode==HC_ACTION) // { // BOOL bCtrlKeyDown =GetAsyncKeyState(VK_CONTROL)>>((sizeof(SHORT) * 8) - 1); // BOOL bShift =GetAsyncKeyState(VK_LSHIFT)>>((sizeof(SHORT) * 8) - 1); // BOOL bAlt = GetAsyncKeyState(VK_LMENU)>>((sizeof(SHORT) * 8) - 1); // BOOL bEsc = pkh->vkCode==VK_ESCAPE?TRUE:FALSE; // BOOL bWin = GetAsyncKeyState(VK_LWIN)>>((sizeof(SHORT) * 8) - 1); // } // return CallNextHookEx(g_hHookKbdLL, nCode, wp, lp); } /************************************************ *@函数名: MonopolizeHotKey *@函数功能: 屏蔽热键 *@函数参数: bMonopolize *@入参: * bMonopolize:是否屏蔽,TRUE:屏蔽;FALSE:不屏蔽 *@出参: * *@返回值: * TRUE:屏蔽成功;FALSE:屏蔽失败 *@备注: **************************************************/ BOOL CSysMonoOperation::MonopolizeHotKey(BOOL bMonopolize) { if (bMonopolize) { if (g_hHookKbdLL == NULL) { g_hHookKbdLL = SetWindowsHookEx(WH_KEYBOARD_LL, MyTaskKeyHookLL, (HINSTANCE)AfxGetApp()->m_hInstance, 0); if (g_hHookKbdLL != NULL) { return TRUE; } return FALSE; } } else { if (g_hHookKbdLL != NULL) { UnhookWindowsHookEx(g_hHookKbdLL); g_hHookKbdLL = NULL; } } return TRUE; } 上面那个MonopolizeHotKey方法就是安装或者卸载钩子,安装bMonopolize就为TRUE,卸载bMonopolize为FALSE。

bluehost32元/月,2核2G/20GB空间,独立ip,新一代VPS美国云主机!

bluehost怎么样?bluehost推出新一代VPS美国云主机!前几天,BlueHost也推出了对应的周年庆活动,全场海外虚拟主机月付2.95美元起,年付送免费的域名和SSL证书,通过活动进入BlueHost中文官网,购买虚拟主机、云虚拟主机和独立服务器参与限时促销。今天,云服务器网(yuntue.com)小编给大家介绍的是新一代VPS美国云主机,美国SSD云主机,2核2G/20GB空间,独立...

legionbox:美国、德国和瑞士独立服务器,E5/16GB/1Gbps月流量10TB起/$69/月起

legionbox怎么样?legionbox是一家来自于澳大利亚的主机销售商,成立时间在2014年,属于比较老牌商家。主要提供VPS和独立服务器产品,数据中心包括美国洛杉矶、瑞士、德国和俄罗斯。其中VPS采用KVM和Xen架构虚拟技术,硬盘分机械硬盘和固态硬盘,系统支持Windows。当前商家有几款大硬盘的独立服务器,可选美国、德国和瑞士机房,有兴趣的可以看一下,付款方式有PAYPAL、BTC等。...

易探云服务器怎么过户/转让?云服务器PUSH实操步骤

易探云服务器怎么过户/转让?易探云支持云服务器PUSH功能,该功能可将云服务器过户给指定用户。可带价PUSH,收到PUSH请求的用户在接收云服务器的同时,系统会扣除接收方的款项,同时扣除相关手续费,然后将款项打到发送方的账户下。易探云“PUSH服务器”的这一功能,可以让用户将闲置云服务器转让给更多需要购买的用户!易探云服务器怎么过户/PUSH?1.PUSH双方必须为认证用户:2.买家未接收前,卖家...

键盘钩子为你推荐
ata考试什么是计算机ATA考试?要详细答案!谢谢帮忙!!isbackgroundbokeh是什么意思公众号付费阅读如何申请微信付费阅读功能pat是什么格式pat 格式的文件用什么软件打开?网站客服代码请问怎么在网页里面加入在线客服系统的代码,代码要怎么获得?爱码验证码平台接码验证码接收平台如何使用?东兴证券网站东兴证券超强版下载在线沟通网络沟通的问题有哪些泛微协同办公系统泛微OA系统怎么创建新人员backupexec如何在Backup Exec 2012中添加要备份的Windows服务器
未注册域名查询 免费主机 好看的留言 css样式大全 空间服务商 华为4核 嘉洲服务器 idc是什么 腾讯实名认证中心 cn3 常州联通宽带 卡巴斯基免费试用版 双线机房 百度云加速 畅行云 服务器论坛 购买空间 阿里云邮箱个人版 带宽测试 netvigator 更多