gpt4 book ai didi

c++ - 使用 SendMessage() 的鼠标单击不会移交给窗口

转载 作者:太空宇宙 更新时间:2023-11-04 12:48:53 29 4
gpt4 key购买 nike

简单来说:

我有 2 个模拟器,我正在使用 SendMessage() 模拟点击


我可以将其发送到的模拟器是 Nox

我将消息传递给的窗口层次结构和窗口句柄:

Window hierarchy

它按照预期的方式工作(使用spy++监听消息) Nox

还有代码:

SendMessage(NoxPlayer, WM_LBUTTONDOWN, MK_LBUTTON, MAKELPARAM(width, height));
SendMessage(NoxPlayer, WM_LBUTTONUP, MK_LBUTTON, MAKELPARAM(width, height));
SendMessage(NoxPlayer, WM_MOUSEMOVE, 0, MAKELPARAM(width, height));

我在末尾添加了 WM_MOUSEMOVE,因为 noxplayer 认为我在没有它的情况下按住 L_Mouse click。


现在我的问题出在这里...我有另一个名为“逍遥播放器”的模拟器

我将消息传递给的窗口层次结构和窗口句柄:

MEmu hierarchy

但是当传递与之前相同的代码时:

SendMessage(MEmu, WM_LBUTTONDOWN, MK_LBUTTON, MAKELPARAM(width, height));
SendMessage(MEmu, WM_LBUTTONUP, MK_LBUTTON, MAKELPARAM(width, height));
SendMessage(MEmu, WM_MOUSEMOVE, 0, MAKELPARAM(width, height));

我没有在应用程序上获得模拟点击。我尝试收听我传递的任何消息,但在使用 spy++ 遍历所有可见窗口时没有发现任何消息。


然后我尝试使用 spy++ 聆听正常的鼠标点击作为消息的样子,并得到了这个:

MEmu

作为引用,这是没有模拟的相同点击在 Nox Player 上的样子:

Nox player message


我是否使用了错误的代码来发送模拟的鼠标点击,或者我是否将其传递给了错误的窗口?

最佳答案

好吧...

通过做一件简单的事情设法解决了我遇到的问题。

以管理员权限运行我的程序

由于我使用 Microsoft Visual Studio 进行所有编程,所以我只需要在管理员模式下启动 Visual Studio。

修复了问题,同时仍然保留了鼠标单击模拟的原始 SendMessage() 方法

关于c++ - 使用 SendMessage() 的鼠标单击不会移交给窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50029064/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com