1

我正在尝试使用最简单的方法自动化隐藏的.NET 应用程序和另一个 .NET 应用程序(用 c# 编写)。它不是用于测试目的,它是一种解决此应用程序缺乏脚本的方法。

我已经尝试过白色框架,但它存在一个主要问题:它的工作方式。它很慢,而且它不适用于隐藏的窗口和控件(就像 winAPI 一样)。更重要的是,当“点击”白色移动鼠标时,将它的目标窗口带到前面等等。

我也在考虑使用 user32.dll 包装器,因为它处理目标的方式是我所需要的,但我认为它不适用于 .NET 应用程序。使用它也是一个问题,因为我的目标应用程序有 5 个标记为“...”的按钮,并且很难找到我需要的其中 2 个。我还想使用控件 .NET id(开发人员在设计 GUI 时为其控件命名的名称)。

顺便说一句,如果有帮助的话,我的目标应用程序是MeGUI。我们做了很多视频编码,这样的工具对我们有很大帮助。我需要隐藏MeGUI,因为我是唯一的程序员,其他使用我的工具的人不应该看到后台发生的事情,更不用说周围弹出的许多窗口。

4

2 回答 2

2

您可以从项目中添加对 exe 的引用,然后创建一个AppDomain以运行其 main 方法。从那里,应该可以将委托排队到其主线程的循环中。通过一些反思,您可以让这些委托直接调用点击事件等。

我从未尝试过这种方法,但它应该有效。

于 2010-09-12T13:34:52.200 回答
1

您应该尝试 Stephens 的想法,而不是编写隐藏应用程序的脚本。.NET Windows 窗体应用程序 (EXE) 仍然是 .NET 程序集,这意味着您可以像使用 DLL 一样使用它,只需添加引用并使用公共类。

如果您仍想尝试一些脚本,请查看“Microsoft UI 自动化”API 和“System.Windows.Automation”命名空间。

好文章在这里:http: //msdn.microsoft.com/en-us/magazine/cc163465.aspx

MSDN 文档:http: //msdn.microsoft.com/en-us/library/system.windows.automation.aspx

于 2010-09-12T14:04:05.120 回答