资源简介
Qt实现全局钩子,拦截鼠标键盘消息,修改消息,在Qt 4.86上编译通过,适合学习,分享快乐,谢谢。
代码片段和文件信息
#include
#include
#include
HHOOK keyHook=NULL;
HHOOK mouseHook=NULL;
bool fire=false;
bool pressGun=false;
void unHook();
LRESULT CALLBACK keyProc(int nCodeWPARAM wParamLPARAM lParam )
{
KBDLLHOOKSTRUCT *pkbhs = (KBDLLHOOKSTRUCT *) lParam;
if(pkbhs->vkCode==VK_ESCAPE)
{
unHook();
}
// pkbhs->flags 说明
// 0 指定的键是否扩展的键,如功能键或数字键盘上的键。值为 1,如果键是一个扩展的密钥 ;否则,它是 0。
// 1-3 保留。
// 4 指定是否已注入该事件。值为 1,如果该事件被注射 ;否则,它是 0。
// 5 上下文代码。值为 1,如果按下 ALT 键 ;否则,它是 0。
// 6 保留。
// 7 过渡状态。如果它被释放,则值为 0,如果按下的键和 1。
bool bPress = (0x1 & (pkbhs->flags >> 7));
// printf(“KeyCode:%ld\nFlag :%ld\nPress :%ld\n“ pkbhs->vkCode pkbhs->flags bPress);
if(!bPress){
if(pkbhs->vkCode==VK_F12)
{
fire=true;
// keybd_event(65000);
}
}else{
if(pkbhs->vkCode==VK_F12)
{
fire=false;
// keybd_event(650KEYEVENTF_KEYUP0);
if(pressGun)
{
pressGun=false;
mouse_event (MOUSEEVENTF_LEFTUP | MOUSEEVENTF_MOVE 0 -30 0 0 );
}
}
}
return CallNextHookEx(keyHook nCode wParam lParam );
}
LRESULT CALLBACK mouseProc(int nCodeWPARAM wParamLPARAM lParam )
{
MSLLHOOKSTRUCT *pkbhs = (MSLLHOOKSTRUCT *) lParam;
MSLLHOOKSTRUCT *pkbhs_tmp=(MSLLHOOKSTRUCT *) lParam;
if (nCode< 0){
return CallNextHookEx(mouseHook nCode wParam lParam);
}
switch(wParam)
{
case WM_LBUTTONDOWN:
if(fire)
{
if(!pressGun){
mouse_event (MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_MOVE 0 3 0 0 );
pressGun=true;
}else
{
mouse_event (MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_MOVE 0 0 0 0 );
}
return 1;
}
break;
case WM_LBUTTONUP:
if(fire)
{
mouse_event (MOUSEEVENTF_LEFTUP | MOUSEEVENTF_MOVE 0 0 0 0 );
return 1;
}
break;
case WM_MOUSEMOVE:
// if(fire)
// {
// printf(“X: %ld\n“pkbhs->pt.y);
// pkbhs->pt.y+=100;
// printf(“X: %ld\n“pkbhs_tmp->pt.y);
// }
break;
}
return CallNextHookEx(mouseHook nCode wParam lParam );
}
void unHook()
{
UnhookWindowsHookEx(keyHook);
UnhookWindowsHookEx(mouseHook);
}
void setHook()
{
keyHook =SetWindowsHookEx( WH_KEYBOARD_LLkeyProcGetModuleHandle(NULL)0);
mouseHook =SetWindowsHookEx( WH_MOUSE_LLmouseProcGetModuleHandle(NULL)0);
}
int main(int argc char *argv[])
{
QCoreApplication a(argc argv);
printf(“Hello Qt Hook begin\n“);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 175847 2017-10-11 15:36 keyHook\debug\keyHook.exe
文件 105390 2017-10-11 15:36 keyHook\debug\main.o
文件 327 2017-10-11 10:14 keyHook\keyHook.pro
文件 18440 2017-10-12 08:14 keyHook\keyHook.pro.user
文件 17640 2014-06-03 23:19 keyHook\keyHook.pro.user.3.0-pre1
文件 3293 2017-10-11 15:36 keyHook\main.cpp
文件 6380 2017-10-11 15:36 keyHook\Makefile
文件 5008 2017-10-11 15:36 keyHook\Makefile.Debug
文件 5054 2017-10-11 15:36 keyHook\Makefile.Release
目录 0 2017-10-11 15:36 keyHook\debug
目录 0 2017-10-11 09:25 keyHook\release
目录 0 2017-10-12 08:14 keyHook
----------- --------- ---------- ----- ----
337379 12
相关资源
- PCL+Qt可视化,鼠标点拾取
- 键盘记录器klogger
- CH452键盘数码管驱动程序配有电路图
- C51+1602液晶+矩阵键盘+三相步进电机
- 类似按键精灵,带动作录制功能
- 简易c51单片机矩阵式键盘密码锁
- 键盘加速器 最新更新
- 梦幻西游鼠标防偏移完美高速解决漂
- 030 矩阵键盘 电子琴 仿真 51单片机
- tm1628 用作键盘和时钟led显示屏的驱动
- 汇编语言实验 从键盘读入两个两位十
- arm下输入法键盘
- usb键盘驱动程序,代码
- 无线鼠标电路的详细原理图
- nokia 5110 矩阵键盘控制 原理图
- 微机原理课程设计---密码键盘
- 两个proteus仿真6位数显频率计数器和
- Flash 星星坠落 鼠标移动效果.rar
- CSS3鼠标hover背景图片缩放动画效果
- On Screen Keyboard.zip
- 纯CSS实现鼠标移上图片添加阴影效果
- JS+CSS给图片加上鼠标滑过的方框.rar
- js左右切换鼠标可控的无缝图片滚动代
- 320个精美的鼠标指针样式文件
- 曼巴蛇鼠标驱动XM-M398 GAMING MOUSE V1.0
- qt虚拟键盘26键和数字键
- 实现cgridlistctrlex,并使用鼠标响应事
- 键盘记录器
- opengl的鼠标画线,圆,矩形,还有个
- 老外写的sockethook代码 实现socket钩子
评论
共有 条评论