如何在 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:
- 查找弹出窗口的 window 句柄 (
HWND
)
- 查找子字段句柄
- 通过句柄在字段中设置文本 (
SendMessage(WM_SETTEXT)
)
您可以按名称或 ID 查找字段和 windows。
使用 Spy++
调查弹出 window 布局。
我有一个使用 cmd 启动的 C++ 程序。启动后,他会显示一个弹出窗口,用户必须在其中写下他的 login/password.
我想用另一个程序(用 C# 编写)启动这个程序,我知道如何使用 System.Diagnostics.Process.Start
。
所以我的问题是:我可以在我的 C# 程序中填写 login/password 的字段吗?
答案:
@DmitriyZapevalov 是对的。以下是一些对我有帮助的有用链接:
您必须通过 Interop 使用 Windows API:
- 查找弹出窗口的 window 句柄 (
HWND
) - 查找子字段句柄
- 通过句柄在字段中设置文本 (
SendMessage(WM_SETTEXT)
)
您可以按名称或 ID 查找字段和 windows。
使用 Spy++
调查弹出 window 布局。