我已经设置了静态方法来点击Windows窗体应用程序中的窗口,如下所示
NativeMethods.PostMessage(hWnd, WM_LBUTTONDOWN, IntPtr.Zero, new IntPtr((xpos) | ((ypos) << 16)));
NativeMethods.PostMessage(hWnd, WM_LBUTTONUP, IntPtr.Zero, new IntPtr((xpos) | ((ypos) << 16)));
其中hWnd是我要点击的窗口的IntPtr。 NativeMethods只是一个用于对PostMessage / SendMessage方法进行pinvoke的包装类。并将xpos / ypos传递给包含此坐标代码的函数。
代码非常基本(如果需要我可以粘贴更多),并且可以在大多数窗口上工作,所以我知道那里没有问题。我遇到麻烦的地方是尝试点击BlueStacks窗口。我已经使用间谍++验证我有正确的&#39; ui&#39;发送PostMessage的窗口(通过验证手动鼠标点击并观看消息,甚至使用上述代码复制点击。
当运行代码点击Bluestacks窗口时,spy ++显示PostMessages(以及SendMessages实际上显示)但是点击似乎没有通过。
我还尝试以管理员身份运行代码,但它仍然没有在Bluestacks上运行(但是可以在其他窗口上工作,即记事本,单词等)。