有没有办法从VB.NET控制第三方EXE文件?

时间:2010-03-05 01:53:59

标签: windows vb.net automation executable

我的目标是从VB.NET控制应用程序。没有API,我没有源,只有编译的EXE文件。有没有办法找到打开的应用程序,在应用程序中找到一个按钮,单击一个按钮,并知道它被单击?有没有办法在应用程序中读取文本框的内容?

3 个答案:

答案 0 :(得分:5)

是的,对于Windows Vista(或Windows 7,或Windows Server 2003及更高版本),有“UI Automation”API。

有托管选项; System.Windows.Automation是.NET 3.0附带的WPF,是UI Automation blog的一部分...虽然System.Windows.Automation是作为WPF的一部分提供的,但并不要求目标应用程序使用WPF。

您可以阅读更多内容:

答案 1 :(得分:1)

是的,你可以,但首先可能更容易使用'AutoIt'作为原型脚本来查找应用程序。查找该应用程序窗口的句柄,通过该窗口的子控件进行枚举,专门查找该文本框和按钮...一旦AutoIt原型工作,然后深入实际编码,就可以使用{{ 3}}枚举并找到窗口,获取它的句柄并对其进行自动化......

从Stack Overflow发布 P/Invoke 中查看C#中的示例。 OP试图访问第三方窗口应用程序,提取文本并在其程序中使用该文本...注意在给定链接中,“FindWindow”用于迭代主进程窗口的子窗口。

答案 2 :(得分:0)

是的,但您必须使用原生API调用,例如EnumWindowsEnumChildWindows。看看 How To Enumerate Windows Using the Win32 API 。它适用于Visual Basic 6.0,但概念是相同的。