【问题标题】:Programmatically controlling open source GUIs using C#使用 C# 以编程方式控制开源 GUI
【发布时间】:2011-05-25 00:57:33
【问题描述】:

似乎如果您有一个开源的 GUI,例如 TortoiseSVN (related question),那么您对它重复执行的任何操作都应该是可自动化的。按钮点击链接到事件,源代码在里面。

有没有一种简单的方法来查找按钮处理事件并自动执行您的任务?

我听说过AutoIt,但我正在寻找可以使用 DLL 文件的东西,因此不需要任何窗口。

【问题讨论】:

    标签: c# user-interface automation


    【解决方案1】:

    这取决于工具或程序。其中一些是建立在分层架构上的,下面有一个库,它公开了所有必需的功能。我想有些不是。

    在这里,我没有考虑具体细节。想象一下,并非每个 Windows 应用程序都在内部进行了很好的架构,以便重复使用该功能。要回答您的问题,不,我认为在一般情况下仅挂钩事件并不容易。您必须进行良好的代码检查,看看这是否可行。

    我知道您说过您没有考虑自动化,但您可能需要重新考虑。现在 .NET 中有自动化库 - System.Windows.Automation 是命名空间,它适用于任何 Windows GUI 应用程序,而不仅仅是基于 .NET 构建的应用程序。做起来真的不难。

    【讨论】:

    • +1 自动化非常适用于行为类似于 Windows 应用程序的 Windows 应用程序,所有应用程序都应该这样做。但是,这不适用于自行绘制自己的控件的应用程序(Java、Flash、Apple 产品)。
    • 这对 Tortoise SVN 有效吗?我试图以这种方式自动化 TortoiseHG,但只有少数可用的控制元素。
    • @Cilvic:事实证明我可能对此有点过度兴奋。我不知道使用它比使用 AutoIt 容易得多。我还没有在 TortoiseSVN b/c 上尝试过,我这里没有。
    猜你喜欢
    • 1970-01-01
    • 2017-06-26
    • 2011-07-09
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 2019-09-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多