QT中安装不使用dll的全局钩子
2009-12-15 20:43
561 查看
/********************************************************** 不用调用dll就可以执行的全局钩子示例: 只留下F12做为程序退出,屏蔽键盘和鼠标,测试时请注意 ********************************************************/ #ifndef HH_H #define HH_H #include <QApplication> #include <Windows.h> HHOOK keyHook=NULL; HHOOK mouseHook=NULL; //声明卸载函数,以便调用 void unHook(); //键盘钩子过程 LRESULT CALLBACK keyProc(int nCode,WPARAM wParam,LPARAM lParam ) { //在WH_KEYBOARD_LL模式下lParam 是指向KBDLLHOOKSTRUCT类型地址 KBDLLHOOKSTRUCT *pkbhs = (KBDLLHOOKSTRUCT *) lParam; if(pkbhs->vkCode==VK_F12) { void unHook(); qApp->quit(); } return 1;//返回1表示截取消息不再传递,返回0表示不作处理,消息继续传递 } //鼠标钩子过程 LRESULT CALLBACK mouseProc(int nCode,WPARAM wParam,LPARAM lParam ) { return 1; } //卸载钩子 void unHook() { UnhookWindowsHookEx(keyHook); UnhookWindowsHookEx(mouseHook); } //安装钩子,调用该函数即安装钩子 void setHook() { //这两个底层钩子,不要DLL就可以全局 // 底层键盘钩子 keyHook =SetWindowsHookEx( WH_KEYBOARD_LL,keyProc,GetModuleHandle(NULL),0); // 底层鼠标钩子 mouseHook =SetWindowsHookEx( WH_MOUSE_LL,mouseProc,GetModuleHandle(NULL),0); }
相关文章推荐
- QT安装不使用dll的全局钩子
- 通过安装WH_CALLWNDPROC全局钩子将DLL注入所有进行窗口过程的进程
- 使用钩子技术实现QT中的全局热键
- 安装全局消息钩子实现dll窗体程序注入
- 全局钩子 实例(不使用DLL和使用DLL两种)
- 全局钩子 实例(不使用DLL和使用DLL两种)
- 在使用一个全局底层键盘钩子dll时遇到的问题
- 不使用DLL创建全局系统钩子
- 不使用DLL创建全局系统钩子
- 不需要DLL的全局钩子完成鼠标截屏功能
- QT 4.5 windows版本 安装问题 及 Junction 使用
- 使用Advanced Installer制作IIS安装包(二:配置安装包依赖项和自定义dll)
- QT编程之——使用全局变量
- qt 无法启动此程序 因为计算机中丢失 XXX.dll.尝试重新安装该程序以解决此问题
- 使用yarn 或者npm全局安装一个命令后无法生效的情况
- Qt 使用vs2008+Qt使用QPluginLoader访问DLL
- 使用Advanced Installer制作IIS安装包(二:配置安装包依赖项和自定义dll)
- 全局安装了express框架,但是无法使用express指令的问题
- qt捕获全局windows消息(使用QAbstractNativeEventFilter,然后注册这个类)
- 使用QT+MSVC编写32/64位动态库dll的问题记录