如何在 C# 中以编程方式填写另一个程序的弹出字段?

How to to fill out another program's pop up fields programmatically in C#?

我有一个使用 cmd 启动的 C++ 程序。启动后,他会显示一个弹出窗口,用户必须在其中写下他的 login/password.

我想用另一个程序(用 C# 编写)启动这个程序,我知道如何使用 System.Diagnostics.Process.Start

所以我的问题是:我可以在我的 C# 程序中填写 login/password 的字段吗?

答案:

@DmitriyZapevalov 是对的。以下是一些对我有帮助的有用链接:

您必须通过 Interop 使用 Windows API:

  1. 查找弹出窗口的 window 句柄 (HWND)
  2. 查找子字段句柄
  3. 通过句柄在字段中设置文本 (SendMessage(WM_SETTEXT))

您可以按名称或 ID 查找字段和 windows。

使用 Spy++ 调查弹出 window 布局。