c# - UI 自动化是否有任何依赖项?

标签 c# .net visual-studio-2012 ui-automation microsoft-ui-automation

我有一个 Windows 应用程序,它根据配置从屏幕捕获详细信息。我正在使用 UI 自动化来捕获屏幕上的详细信息。在安装了 Visual Studio 的开发人员计算机上一切正常。当我在仅安装了 .NET Framework 4.5 的另一个系统上运行相同的应用程序时,它开始表现得很奇怪,并且无法检测到子元素。

我的问题是为什么它在安装了 Visual Studio 和 .NET Framework 的开发人员计算机上运行良好。有什么不同?就先决条件而言,我们还缺少什么吗? UI 自动化的任何依赖项或我们缺少的任何库..?

提前致谢 - 请帮助我。

最佳答案

它看起来像是围绕 native UIAutomationCore.dll 的 .NET 包装器中的一个已知错误(是的,其核心不是 .NET)。它已包含在 WinVista+ 中(.NET Framework 甚至也将其添加到 WinXP 中)。

这是一个C# example如何从 C# 使用 native COM API (UIAutomationCore.dll)。只需将代码复制到此处:

using System;
using interop.UIAutomationCore;

namespace PrintDesktopUiaElementNameViaCom
{
    class PrintDesktopUiaElementNameViaComProgram
    {
        static void Main(string[] args)
        {
            // Instantiate the UIA object:
            IUIAutomation _automation = new CUIAutomation();
            // Get the root element
            IUIAutomationElement rootElement = _automation.GetRootElement();
            // Get its name
            string rootName = rootElement.CurrentName;
            Console.WriteLine(
                "The root automation element's name should be 'Desktop'.");
            Console.WriteLine("The actual value is: '{0}'", rootName);
        }
    }
}

关于c# - UI 自动化是否有任何依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42501082/

相关文章:

c# - 如何使我的 Outlook 2007 加载项受信任

visual-studio-2012 - 如何为 Visual Studio 2012 fsi 更新 FSharp.Core

c++ - 无需等待缓冲区的 Win32 ReadFile 输出

c# - 如何在计时器触发的函数上强制执行单例行为?

c# - DateTime的方法 'ToString'?有 0 个参数但用 1 个参数调用

c# - 针对同一个 Entity Framework DbSet 的两个不同的 LINQ 查询,都返回相同的结果

c# - 开发 html/jquery 座位应用程序的最佳方法(或者我们应该使用 silverlight/flash)

c# - 从窗口句柄获取真实文本

c# - 为什么在 QueryOver SingleOrDefault 中很慢?

.net - 解决方案中的 msbuild 和多个 Web 项目