位置模拟鼠标单击

位置模拟鼠标单击

这是原始问题,但对于Java来说是这样的:
Simulate mouse clicks at a certain position on inactive window in Java?

无论如何,我正在构建一个在后台运行的机器人。这个机器人需要我点击。当然,我希望能够在机器人运行时执行其他操作。

因此,我想知道是否有可能在不 Activity 的窗口上的某个位置模拟鼠标单击。

如果可能的话,如果任何人能帮助我,我将不胜感激。

谢谢!

最佳答案

是的,这是可能的,这是我在以前的学校项目中使用的代码:

[System.Runtime.InteropServices.DllImport("user32.dll")]
public static extern void mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);

public const int MOUSEEVENTF_LEFTDOWN = 0x02;
public const int MOUSEEVENTF_LEFTUP = 0x04;
public const int MOUSEEVENTF_RIGHTDOWN = 0x08;
public const int MOUSEEVENTF_RIGHTUP = 0x10;

//This simulates a left mouse click
public static void LeftMouseClick(Point position)
{
    Cursor.Position = position;
    mouse_event(MOUSEEVENTF_LEFTDOWN, position.X, position.Y, 0, 0);
    mouse_event(MOUSEEVENTF_LEFTUP, position.X, position.Y, 0, 0);
}

编辑:似乎 mouse_event 函数已由 SendInput() 代替,但它仍然有效(Windows 7和更早版本)

08-05 10:34