我真的很想知道Inspect.exe如何获取UI元素,因为它获取的元素远比UISpy(Microsoft Windows SDK 7中都提供)更多.
I really want to know, how Inspect.exe gets it's UI-Elements, because it gets by far more elements than UISpy (Both available in Microsoft Windows SDK 7).
1)我认为UISpy通过UIAutomation库获取了它的元素,对不对? (使用UIAutomation对其进行了尝试,并获得了与UISpy显示的元素完全相同的元素.)
1) I think UISpy gets it's elements with UIAutomation library, right? (Tried it with UIAutomation and got exactly the same elements, that UISpy displayed).
2)Inspect.exe使用哪个库? 因为它显示了例如带有MacromediaFlashPlayerActiveX的应用程序的某些UI元素,我需要将其放入自己的UI-Automation-Application中,所以希望有人对此有所了解.
2) Which library does Inspect.exe use? Because it shows some UI-Elements of a Application with MacromediaFlashPlayerActiveX for example, which I need to get in my own UI-Automation-Application, hope somebody knows something about it.
检查还具有"UI自动化"模式,它也使用UIAutomation库吗?奇怪的是,在Inspect中,它还显示了比UISpy更多的元素.
Inspect also have a "UI Automation" Mode, does it also use UIAutomation library? The strange thing about it is, that in Inspect it also shows many more elements than UISpy.
推荐答案UISpy是使用.NET的UIAutomation程序集的 .NET 程序.这些程序集是在.NET Framework 2中引入的.
UISpy is a .NET program that uses .NET's UIAutomation assemblies. These assemblies were introduced with .NET Framework 2.
Inspect是使用UIAutomationCore.dll(在System目录中可用)的 native 程序. UIAutomationCore是实现native COM Windows DLL. > UI自动化Windows API .此API已随Windows升级,例如,这里是Windows 8+改进的链接: UI自动化中的新增功能?
Inspect is a native program that uses UIAutomationCore.dll (available in the System directory). UIAutomationCore is a native COM Windows DLL that implements the UI Automation Windows API. This API has been upgraded with Windows, for example here is a link to Windows 8+ improvements: What's New in UI Automation?
.NET的UIAutomation程序集在内部使用UIAutomationCore.dll.但是,Microsoft从未将它们升级为本机UI自动化API的新功能.因此,如果使用原始.NET的UIAutomation,则会缺少很多属性(例如,非常有用的所有ARIA属性),模式,事件等.
.NET's UIAutomation assemblies use UIAutomationCore.dll internally. However, Microsoft never upgraded them to new features of the native UI Automation API. A lot of properties (for example all ARIA properties which are very useful), patterns, events, etc, are therefore missing if you use the original .NET's UIAutomation.
但是,.NET世界仍然充满希望,因为这里有一个项目: uiacomwrapper. codeplex/是.NET UIAutomation的与源兼容的较新版本(实际上是由Microsoft编写的,我不明白为什么他们不以更正式的方式发布并升级.NET的UIAutomation ...).它定义了Windows 8的大多数新属性,模式和界面.
But, there is still hope in the .NET world, because there is a project here: uiacomwrapper.codeplex/ that is a source-compatible newer version of .NET UIAutomation (It's been in fact written by a Microsoft guy, I don't understand why they don't publish this in a more official way and upgrade .NET's UIAutomation...). It defines most new Windows 8 properties, patterns and interfaces.
更多推荐
UISpy.exe和Inspect.exe有什么区别? (来自Microsoft Windows SDK)
发布评论