键盘钩子用键盘钩子 和 用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。

打开海外主机域名商出现"Attention Required"原因和解决

最近发现一个比较怪异的事情,在访问和登录大部分国外主机商和域名商的时候都需要二次验证。常见的就是需要我们勾选判断是不是真人。以及比如在刚才要访问Namecheap检查前几天送给网友域名的账户域名是否转出的,再次登录网站的时候又需要人机验证。这里有看到"Attention Required"的提示。我们只能手工选择按钮,然后根据验证码进行选择合适的标记。这次我要选择的是船的标识,每次需要选择三个,一...

onevps:新增(支付宝+中文网站),香港/新加坡/日本等9机房,1Gbps带宽,不限流量,仅需$4/月

onevps最新消息,为了更好服务中国区用户:1、网站支付方式新增了支付宝,即将增加微信;原信用卡、PayPal方式不变;(2)可以切换简体中文版网站,在网站顶部右上角找到那个米字旗,下拉可以换中国简体版本。VPS可选机房有:中国(香港)、新加坡、日本(东京)、美国(纽约、洛杉矶)、英国(伦敦)、荷兰(阿姆斯特丹)、瑞士(苏黎世)、德国(法兰克福)、澳大利亚(悉尼)。不管你的客户在亚太区域、美洲区...

IonSwitch:$1.75/月KVM-1GB/10G SSD/1TB/爱达荷州

IonSwitch是一家2016年成立的国外VPS主机商,部落上一次分享的信息还停留在2019年,主机商提供基于KVM架构的VPS产品,数据中心之前在美国西雅图,目前是美国爱达荷州科德阿伦(美国西北部,西接华盛顿州和俄勒冈州),为新建的自营数据中心。商家针对新数据中心运行及4号独立日提供了一个5折优惠码,优惠后最低1GB内存套餐每月仅1.75美元起。下面列出部分套餐配置信息。CPU:1core内存...

键盘钩子为你推荐
中国学生网中国大学生在线邮箱怎么申请?pat是什么格式如何把JPG图片变为PAT格式图片?java程序员招聘为什么Java程序员工资都很高java程序员招聘女java程序员好找工作嘛yui3YUI最详细的资料怎样删除聊天记录自己已发出的微信聊天记录怎样删除才不会让对方看见backupexec如何在Backup Exec 2012中添加要备份的Windows服务器idataparameterunsigned char idata是什么意思微盟价格虚拟币的价格由什么决定pass是什么锒行卡上的闪付pass是什么意思?
com域名抢注 openv vmsnap3 空间打开慢 魔兽世界台湾服务器 促正网秒杀 e蜗 空间论坛 lol台服官网 免费高速空间 免费智能解析 天翼云盘 台湾谷歌 vul 谷歌台湾 免费蓝钻 双十二促销 国外免费网盘 japanese50m咸熟 apache启动失败 更多