【问题标题】:What's the difference of UISpy.exe and Inspect.exe? (From Microsoft Windows SDK)UISpy.exe 和 Inspect.exe 有什么区别? (来自 Microsoft Windows SDK)
【发布时间】:2019-10-30 19:29:54
【问题描述】:

我真的很想知道,Inspect.exe 是如何获得它的 UI 元素的,因为它获得的元素远远多于 UISpy(两者都在 Microsoft Windows SDK 7 中可用)。

1) 我认为 UISpy 使用 UIAutomation 库获取它的元素,对吗? (用 UIAutomation 进行了尝试,得到了与 UISpy 显示的完全相同的元素)。

2) Inspect.exe 使用哪个库? 因为它显示了带有 MacromediaFlashPlayerActiveX 的应用程序的一些 UI 元素,我需要在我自己的 UI-Automation-Application 中获取这些元素,希望有人对此有所了解。

编辑:Inspect 也有一个“UI 自动化”模式,它是否也使用 UIAutomation 库?奇怪的是,在 Inspect 中它还显示了比 UISpy 更多的元素。

【问题讨论】:

  • UISpy 是 declared obsolete,建议替换 Inpect。你在微软内部看到了不同部门、不同团队之间的摩擦,它是一家非常大的公司。 UI 自动化是 Windows 组的职责,他们不喜欢 .NET,由 Servers 和 Tools 拥有。可悲的是,WinRT 的崩溃并没有让他们失望。如果您以 .NET 为目标,那么 UISpy 是您可以使用 System.Windows.Automation 命名空间的最准确反映。
  • UISpy 已过时,建议使用 Inspect.exe
  • a page dated 02018-05-31 上,Microsoft 声明“Inspect 是一个遗留工具。我们建议改用Accessibility Insights。” (免责声明:我不是这方面的专家,我只是在谷歌上搜索答案并最终来到这里(然后在 MS 页面上))

标签: .net ui-automation microsoft-ui-automation ui-spy inspect.exe


【解决方案1】:

UISpy 是一个使用 .NET 的 UIAutomation 程序集的 .NET 程序。这些程序集是在 .NET Framework 2 中引入的。

Inspect 是一个native 程序,它使用 UIAutomationCore.dll(可在 System 目录中找到)。 UIAutomationCore 是一个本机 COM Windows DLL,它实现了UI Automation Windows API。此 API 已随 Windows 升级,例如这里是 Windows 8+ 改进的链接:What's New in UI Automation?

.NET 的 UIAutomation 程序集在内部使用 UIAutomationCore.dll。但是,Microsoft 从未将它们升级到本机 UI 自动化 API 的新功能。如果您使用原始 .NET 的 UIAutomation,很多属性(例如所有非常有用的 ARIA 属性)、模式、事件等都会因此丢失。

但是,.NET 世界还是有希望的,因为这里有一个项目:https://uiacomwrapper.codeplex.com/ 这是一个源代码兼容的新版本的 .NET UIAutomation(它实际上是由微软的人编写的,我不知道'不明白他们为什么不以更正式的方式发布此内容并升级.NET的UIAutomation ...)。它定义了大多数新的 Windows 8 属性、模式和接口。

【讨论】:

  • 还有另一个更好的工具,Visual UI Automation Verify (Visual UIA Verify)
  • 工具 Visual UIA 验证 的好提示和有用的文章。但要找到工具本身并不容易。您可以在此处下载它:archive.codeplex.com/?p=uiautomationverify ... 解压缩 ZIP,转到 sourceCode,解压缩 sourceCode.zip,打开解决方案,编译,运行,拥有乐趣。 ...对我来说,编译工作没有任何问题。我不明白为什么没有官方下载或二进制文件。
猜你喜欢
  • 2023-02-11
  • 2016-10-19
  • 2017-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-20
相关资源
最近更新 更多