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相关推荐

  1. VC/MFC 键盘钩子,代码片断

    在MFC程序中使用键盘钩子来获取按键消息,例程: #include "StdAfx.h" #include "KeyboardHook.h" static HH ...

  2. 利用键盘钩子捕获Windows键盘动作

    引言 在科研生产中对研制.调试操作的记录是非常有必要而且是有很重要价值的.通过对记录信息的分析,可以在事故发生后准确的分析出事故的起因.操作是否存在失误等许多重要线索.通常需要记录的信息是多种多样的, ...

  3. WPF 利用键盘钩子来捕获键盘,做一些不为人知的事情...完整实例

    原文:WPF 利用键盘钩子来捕获键盘,做一些不为人知的事情...完整实例 键盘钩子是一种可以监控键盘操作的指令. 看到这句话是不是觉得其实键盘钩子可以做很多事情. 场景 当你的程序需要一个全局的快捷键 ...

  4. 利用底层键盘钩子拦载任意按键(回调版)

    前段时间我曾经写过一篇<利用底层键盘钩子屏蔽任意按键>,并放到了我的blog上.这篇文章的题目中把"屏蔽"改成了"拦截",显然要比以前的版本强一些了 ...

  5. 利用键盘钩子开发按键发音程序

    前言 一日,看见我妈正在用电脑练习打字,频频低头看键盘,我想:要是键盘能发音的话,不就可以方便她养成"盲打"的好习惯吗?光想不做可不行,开始行动 按键能发音,其关键就是让程序能够知 ...

  6. python 键盘钩子_WPF 利用键盘钩子来捕获键盘,做一些不为人知的事情...完整实例...

    原文:WPF 利用键盘钩子来捕获键盘,做一些不为人知的事情...完整实例 键盘钩子是一种可以监控键盘操作的指令. 看到这句话是不是觉得其实键盘钩子可以做很多事情. 场景 当你的程序需要一个全局的快捷键 ...

  7. 键盘钩子,游戏外挂基础

    网上有很多外挂制作的教程,大多是讲针对大型网络游戏的,主要包含一些抓包.反汇编.C++的知识综合.事实也如此,常见的外挂都是使用VC++写的,从来没有过C#或者其他.NET语言编写的外挂. 作为微软. ...

  8. 利用底层键盘钩子屏蔽任意按键

    很多人都知道,如果想在系统范围内屏蔽键盘上的任意按键需要使用全局键盘钩子,然而像win键这样"倔强"的按键又不是普通的键盘钩子就能搞定的.这里我提供一种利用底层键盘钩子屏蔽任意按键 ...

  9. [C++]键盘钩子程序

    实现适时监视键盘,并将按键信息保存在TXT文件中的程序 Windows系统是建立在事件驱动的机制上的,说穿了就是整个系统都是通过消息的传递来实现的.而钩子是Windows系统中非常重要的系统接口,用它 ...

  10. 低级键盘钩子,在WIN7以上版本的问题

    最近在项目用到低级键盘钩子.发现一个很奇怪的事情,在开发环境和测试环境下都正常运行的键盘钩子, 到了现场环境,总是偶发性出现 键盘钩子不能用了,而且退出时产生1404 错误. 后经过阅读MSDN 的R ...

最新文章

  1. 【机器学习】基于粒子群算法的非线性函数寻优
  2. python 时间字符串和时间戳之间的转换
  3. 华为手机如何升级鸿蒙系统_华为杨海松:明年所有华为自研设备升级鸿蒙系统...
  4. python装饰器实例-python 装饰器的使用示例
  5. Spring-AOP 混合使用各种切面类型及不同切面总结
  6. windows2012自动锁定计算机,如何在Windows中启用或禁用自动锁定
  7. linux内核模块配置,如何为linux内核模块开发配置clang_complete?
  8. C#LeetCode刷题之#643-子数组最大平均数 I( Maximum Average Subarray I)
  9. history 改成 模式_前端路由三种模式
  10. 【英语学习】4000 Words 【V1】【U01】The Lion and the Rabbit
  11. RocketMQ 部署不当导致磁盘空间不释放
  12. PHP批量去除PHP文件中bom的代码
  13. 修改Maven默认编译级别
  14. [android开发IDE]adt-bundle-windows-x86的一个bug:无法解析.rs文件--------rs_core.rsh file not found...
  15. Linux ubuntu centos Shell命令大全
  16. html中语音聊天怎么实现,微信小程序语音聊天功能怎么实现?
  17. 排列组合思维导图_巧用思维导图做数学单元整理
  18. 新技能get之公众号音频下载
  19. 我从DuraznoConf中学到了编程的人性化方面
  20. [转]兰迪.波许的最后讲座:真正实现你童年的梦想(中英文对照)8

热门文章

  1. Mac——snip滚动截图
  2. 对接极光IM之修改头像
  3. c语言网格搜索,基于C
  4. java对数据库的基础知识
  5. 电子工程师必须知道的12个知识
  6. macOS VSCode 终端使用powerline字体配置
  7. ati开源驱动_ATI Radeon 9800 Vista驱动程序-Flash和Windows视频停止或卡顿
  8. 图书馆管理系统——借书操作
  9. Latex学习--参考文献排版(ieee access 模板)
  10. 编写GOM引擎登录器,直接启动GOM客户端DAT文件不掉线