【发布时间】:2020-07-18 03:03:51
【问题描述】:
我以前做过,但是用这个特定的按钮,它不起作用!
如果我点击按钮手动创建一个新窗口(小地图): Image
/////// 但是以编程方式我可以看到按钮上的动画,就好像它被点击了gif,
但是窗口(小地图)不显示。
int x = 9, y = 8;
IntPtr lParam = (IntPtr)((y << 16) | x);
WinAPIs.PostMessage(button, WinAPIs.WM_LBUTTONDOWN, (IntPtr)0x01, lParam);
WinAPIs.PostMessage(button, WinAPIs.WM_LBUTTONUP, IntPtr.Zero, lParam);
只有当我的代码发送消息时鼠标悬停在按钮上才会创建小地图。
这是 YouTube 上的 10 秒视频:Video,
注意:视频中,我没有用鼠标点击按钮, 我刚刚将其悬停。
UPDATE1: Spy++ Messages Image
UPDATE2: 游戏使用 GetCursorPos 和 WindowFromPoint 来获取光标下窗口的句柄并将其与按钮的句柄进行比较,我需要弄清楚如何挂钩 WindowFromPoint 以发送按钮的即使游戏在后台也能处理。
【问题讨论】:
-
评论不用于扩展讨论;这个对话是moved to chat。
-
好的,所以我对游戏进行了逆向工程,它使用 GetCursorPos 和 WindowFromPoint 来检查按钮句柄与我发送的消息,所以现在我需要想办法挂钩 WindowFromPoint 发送按钮的句柄,即使它不在前台。
标签: c# winapi sendmessage postmessage deviare