在c#中模拟鼠标在非活动窗口的某个位置点击

本文关键字:位置 窗口 模拟 鼠标 非活动 | 更新日期: 2023-09-27 18:15:34

这是原来的问题,但它被认为是java:模拟鼠标点击在某个位置上的非活动窗口在Java?

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

所以我想知道我是否有可能在一个非活动窗口的某个位置模拟鼠标点击。

如果可能的话,如果你们中能帮助我,我将非常感激。

谢谢!

在c#中模拟鼠标在非活动窗口的某个位置点击

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

[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);
}

EDIT:似乎mouse_event函数被SendInput()取代了,但它仍然有效(Windows 7及更早版本)