找到另一个进程并单击用户界面 C#

Find another process and click on user interface C#

我需要在 Windows 中找到另一个应用程序进程(另一个程序是 运行)。当该进程运行时,我需要单击另一个程序中的按钮。我必须在 C# 上创建该机制。可以使用控制台应用程序。

哪个图书馆可以做到?寻找一个例子?

所以调用进程的Process.GetProcesses(). The Process object has a property for the MainWindowHandle可以得到进程列表。有了它,您应该能够将鼠标点击发送到该过程。您可以使用 SendMessage 方法发送鼠标按下和鼠标弹起调用。第二个参数 (lParam) 是您发送要单击的坐标的位置。因此,如果您想单击坐标 25、100,那么您可以将坐标与这样的位移结合起来:

int y = 100;
int x = 25;
var coords = (y << 16) | x;

然后这样调用它(其中 hWnd 是进程的 window 句柄):

SendMessage(hwnd, WM_LBUTTONDOWN, 0, coords);
SendMessage(hwnd, WM_LBUTTONDOWN, 0, coords);

[DllImport("User32.dll")]
public static extern Int32 SendMessage(
        int hWnd,               // handle to destination window
        int Msg,                // message
        int wParam,             // first message parameter
        int lParam);            // second message parameter


public const int WM_LBUTTONDOWN = 0x201;
public const int WM_LBUTTONUP = 0x202;