c++ - SetWindowsHookEx 鼠标挂钩
问题描述
如何在捕捉鼠标点击的鼠标上放置一个钩子,不包括 SendInput(硬件按下)?
我的处理程序代码:
LRESULT CALLBACK mouseProc(int Code, WPARAM wParam, LPARAM lParam){
MOUSEHOOKSTRUCT* pMouseStruct = (MOUSEHOOKSTRUCT*)lParam;
if (pMouseStruct != nullptr) {
switch (wParam) {
case WM_LBUTTONDOWN:
std::cout << "WM_LBUTTONDOWN";
break;
case WM_LBUTTONUP:
std::cout << "WM_LBUTTONUP";
break;
case WM_RBUTTONDOWN:
std::cout << "WM_RBUTTONDOWN";
break;
case WM_RBUTTONUP:
std::cout << "WM_RBUTTONUP";
break;
default:
break;
}
}
return CallNextHookEx(NULL, Code, wParam, lParam);}
我把钩子这样放:
HHOOK hook = SetWindowsHookEx(WH_MOUSE_LL, mouseProc, NULL, 0);
MSG message;
while (GetMessage(&message, NULL, 0, 0) > 0)
{
TranslateMessage(&message);
DispatchMessage(&message);
}
UnhookWindowsHookEx(hook);
此代码捕获所有事件,包括 SendInput
解决方案
推荐阅读
- amazon-web-services - AWS Elastic Beanstalk - 实例之间的共享计数器变量
- r - 在 dplyr 中对多个变量进行累积和
- getstream-io - 如何使用stream_python在own_reactions中获取单个用户的数据?
- php - PHP 输出为空
- next.js - 找不到模块:无法解析 '/snapshot/frontend/node_modules/next-server/dist/lib' 中的 '@babel/runtime-corejs2/core-js/array/is-array'
- python - 重新格式化包含字典的 pandas 数据框
- python - 为什么我的代码只返回列表中的第一个元素?
- c# - 创建包含用户和组的表
- apache - .htaccess - 删除路径中第三个斜杠后的所有内容
- javascript - Firebase 函数 - HTTP 错误:400,请求有错误