VC++键盘钩子demo
HHOOK keyHook = NULL;//先声明函数,实现在下面
LRESULT CALLBACK keyProc(int nCode, WPARAM wParam, LPARAM lParam);//初始化钩子,关闭键盘事件(除了ALT+CTRL+DELETE)
void initHook()
{keyHook = SetWindowsHookEx(WH_KEYBOARD_LL, keyProc, GetModuleHandle(NULL), 0);
}//销毁钩子
void unHook()
{if (keyHook){UnhookWindowsHookEx(keyHook);}
}//钩子用的函数
LRESULT CALLBACK keyProc(int nCode, WPARAM wParam, LPARAM lParam)
{//在WH_KEYBOARD_LL模式下lParam 是指向KBDLLHOOKSTRUCT类型地址KBDLLHOOKSTRUCT *pkbhs = (KBDLLHOOKSTRUCT *)lParam;//如果nCode等于HC_ACTION则处理该消息,如果小于0,则钩子子程就必须将该消息传递给 CallNextHookExif (nCode == HC_ACTION) {if (pkbhs->vkCode == VK_ESCAPE){CLogHelp::ITCLog("keyProc---->Esc");if (g_pthisDlg){CLogHelp::ITCLog("Closescreen_FULL");g_pthisDlg->Closescreen_FULL();}}else if (pkbhs->vkCode == VK_ESCAPE && GetAsyncKeyState(VK_CONTROL) & 0x8000 && GetAsyncKeyState(VK_SHIFT) & 0x8000) {//qDebug() << "Ctrl+Shift+Esc";}else if (pkbhs->vkCode == VK_ESCAPE && GetAsyncKeyState(VK_CONTROL) & 0x8000) {//qDebug() << "Ctrl+Esc";}else if (pkbhs->vkCode == VK_TAB && pkbhs->flags & LLKHF_ALTDOWN) {CLogHelp::ITCLog("Alt+Tab ");}else if (pkbhs->vkCode == VK_ESCAPE && pkbhs->flags &LLKHF_ALTDOWN){CLogHelp::ITCLog("Alt+Esc");}else if (pkbhs->vkCode == VK_LWIN || pkbhs->vkCode == VK_RWIN) {CLogHelp::ITCLog("VK_LWIN vs VK_RWIN ");}else if (pkbhs->vkCode == VK_F4 && pkbhs->flags & LLKHF_ALTDOWN) {CLogHelp::ITCLog("Alt+F4 ");}else if (pkbhs->vkCode == VK_F1 && pkbhs->flags &LLKHF_ALTDOWN) {CLogHelp::ITCLog("Alt+F1 back room ");unHook();}else if (pkbhs->vkCode == VK_F1){CLogHelp::ITCLog("F1 Key press ");}return 1;//返回1表示截取消息不再传递,返回0表示不作处理,消息继续传递}return CallNextHookEx(keyHook, nCode, wParam, lParam);
}
VC++键盘钩子demo相关推荐
- VC/MFC 键盘钩子,代码片断
在MFC程序中使用键盘钩子来获取按键消息,例程: #include "StdAfx.h" #include "KeyboardHook.h" static HH ...
- 利用键盘钩子捕获Windows键盘动作
引言 在科研生产中对研制.调试操作的记录是非常有必要而且是有很重要价值的.通过对记录信息的分析,可以在事故发生后准确的分析出事故的起因.操作是否存在失误等许多重要线索.通常需要记录的信息是多种多样的, ...
- WPF 利用键盘钩子来捕获键盘,做一些不为人知的事情...完整实例
原文:WPF 利用键盘钩子来捕获键盘,做一些不为人知的事情...完整实例 键盘钩子是一种可以监控键盘操作的指令. 看到这句话是不是觉得其实键盘钩子可以做很多事情. 场景 当你的程序需要一个全局的快捷键 ...
- 利用底层键盘钩子拦载任意按键(回调版)
前段时间我曾经写过一篇<利用底层键盘钩子屏蔽任意按键>,并放到了我的blog上.这篇文章的题目中把"屏蔽"改成了"拦截",显然要比以前的版本强一些了 ...
- 利用键盘钩子开发按键发音程序
前言 一日,看见我妈正在用电脑练习打字,频频低头看键盘,我想:要是键盘能发音的话,不就可以方便她养成"盲打"的好习惯吗?光想不做可不行,开始行动 按键能发音,其关键就是让程序能够知 ...
- python 键盘钩子_WPF 利用键盘钩子来捕获键盘,做一些不为人知的事情...完整实例...
原文:WPF 利用键盘钩子来捕获键盘,做一些不为人知的事情...完整实例 键盘钩子是一种可以监控键盘操作的指令. 看到这句话是不是觉得其实键盘钩子可以做很多事情. 场景 当你的程序需要一个全局的快捷键 ...
- 键盘钩子,游戏外挂基础
网上有很多外挂制作的教程,大多是讲针对大型网络游戏的,主要包含一些抓包.反汇编.C++的知识综合.事实也如此,常见的外挂都是使用VC++写的,从来没有过C#或者其他.NET语言编写的外挂. 作为微软. ...
- 利用底层键盘钩子屏蔽任意按键
很多人都知道,如果想在系统范围内屏蔽键盘上的任意按键需要使用全局键盘钩子,然而像win键这样"倔强"的按键又不是普通的键盘钩子就能搞定的.这里我提供一种利用底层键盘钩子屏蔽任意按键 ...
- [C++]键盘钩子程序
实现适时监视键盘,并将按键信息保存在TXT文件中的程序 Windows系统是建立在事件驱动的机制上的,说穿了就是整个系统都是通过消息的传递来实现的.而钩子是Windows系统中非常重要的系统接口,用它 ...
- 低级键盘钩子,在WIN7以上版本的问题
最近在项目用到低级键盘钩子.发现一个很奇怪的事情,在开发环境和测试环境下都正常运行的键盘钩子, 到了现场环境,总是偶发性出现 键盘钩子不能用了,而且退出时产生1404 错误. 后经过阅读MSDN 的R ...
最新文章
- 【机器学习】基于粒子群算法的非线性函数寻优
- python 时间字符串和时间戳之间的转换
- 华为手机如何升级鸿蒙系统_华为杨海松:明年所有华为自研设备升级鸿蒙系统...
- python装饰器实例-python 装饰器的使用示例
- Spring-AOP 混合使用各种切面类型及不同切面总结
- windows2012自动锁定计算机,如何在Windows中启用或禁用自动锁定
- linux内核模块配置,如何为linux内核模块开发配置clang_complete?
- C#LeetCode刷题之#643-子数组最大平均数 I( Maximum Average Subarray I)
- history 改成 模式_前端路由三种模式
- 【英语学习】4000 Words 【V1】【U01】The Lion and the Rabbit
- RocketMQ 部署不当导致磁盘空间不释放
- PHP批量去除PHP文件中bom的代码
- 修改Maven默认编译级别
- [android开发IDE]adt-bundle-windows-x86的一个bug:无法解析.rs文件--------rs_core.rsh file not found...
- Linux ubuntu centos Shell命令大全
- html中语音聊天怎么实现,微信小程序语音聊天功能怎么实现?
- 排列组合思维导图_巧用思维导图做数学单元整理
- 新技能get之公众号音频下载
- 我从DuraznoConf中学到了编程的人性化方面
- [转]兰迪.波许的最后讲座:真正实现你童年的梦想(中英文对照)8