全局鼠标钩子动态更新鼠标当前坐标

qq_29095881 2017-01-14 06:21:24
mfc初学,先前做了一个键盘改键,然后现在在做一个通过全局鼠标钩子,在exe里面能动态更新当前鼠标坐标的小东西,看了很多文章翻了论坛总算写完了,编译也通过了,结果却不能用。。。最好的一次能做到运行时的鼠标坐标,然后就不更新了。。
用了sendmessage
这是鼠标钩子dll里面的代码
LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wparam, LPARAM lparam)
{
if (nCode == HC_ACTION) {
MSLLHOOKSTRUCT *pkbhs = (MSLLHOOKSTRUCT *)lparam;
SendMessage(glhWnd, WM_MYMSG, pkbhs->pt.x, pkbhs->pt.y);
}
return CallNextHookEx(glhHook, nCode, wparam, lparam); //继续传递消息
}


这是exe
LRESULT CGetMouseExeDlg::OnMYMSG(WPARAM wParam, LPARAM lParam)
{
CString str;
str.Format(_T("X:%d Y:%d", wParam, lParam)); //格式化鼠标坐标点信息并保存到CString型变量str中
GetDlgItem(IDC_EDIT1)->SetWindowText(str); //更新程序窗口Edit控件文本
return 1;
}

想让大神看看还有咩有错。。。
...全文
463 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Eleven 2017-01-17
  • 打赏
  • 举报
回复
加下log调试到文件中,看下钩子是否能正常获取鼠标相关的事件通知,然后看看你的exe是否能正常接收你钩子发送过来的消息。
zgl7903 2017-01-16
  • 打赏
  • 举报
回复
1: 钩子是否安装成功?安装钩子时的 dwThreadId 是否是0? 2: if (nCode >= HC_ACTION) 在DLL中 OutputDebugString 输出调试信息看看是否成功? VC6 MSDN 中的例子中 包含完整的SPY++的源码 可以参考下
赵4老师 2017-01-16
  • 打赏
  • 举报
回复
百度搜相关关键字。

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧