简单地说:
我有2个模拟器,我使用SendMessage()
模拟点击我可以发送给它的模拟器是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点击。
现在我的问题就在这里......我有另一个名为" MEmu播放器"
的模拟器窗口层次结构和窗口句柄我将消息传递给:
但是当传递与以前相同的代码时:
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 ++听取正常的鼠标点击看起来像消息的方式,并得到了这个:
作为参考,这是没有模拟的相同点击在Nox播放器上的样子:
我使用错误的代码发送模拟鼠标点击还是我将其传递给了错误的窗口?
答案 0 :(得分:0)
好的......
通过做一件简单的事情来解决我遇到的问题。
以管理员权限运行我的程序
由于我使用Microsoft Visual Studio进行所有编程,因此我只需以管理员模式启动Visual Studio。
修复了问题,同时仍保留鼠标单击模拟的原始SendMessage()方法