В чем разница между UISpy.exe и Inspect.exe? (Из Microsoft Windows SDK)
Я действительно хочу знать, как Inspect.exe получает свои элементы пользовательского интерфейса, потому что он получает гораздо больше элементов, чем UISpy (оба доступны в Microsoft Windows SDK 7)
1) Я думаю, что UISpy получает свои элементы с библиотекой UIAutomation, верно? (Попробовал с помощью UIAutomation и получил те же элементы, которые отображал UISpy)
2) Какую библиотеку использует Inspect.exe? Поскольку он показывает некоторые элементы пользовательского интерфейса приложения с MacromediaFlashPlayerActiveX, например, которые мне нужно получить в моем собственном приложении UI-Automation-Application, надеюсь, кто-нибудь что-то знает об этом.
РЕДАКТИРОВАТЬ: Inspect также имеет режим "UI Automation", он также использует библиотеку UIAutomation? Странно то, что в Inspect он также показывает гораздо больше элементов, чем UISpy.
заранее спасибо
1 ответ
UISpy
программа .NET, использующая сборки.NET UIAutomation Эти сборки были представлены в.NET Framework 2.
Inspect
это нативная программа, которая использует UIAutomationCore.dll (доступно в системном каталоге). UIAutomationCore - это встроенная DLL-библиотека COM для Windows, которая реализует API-интерфейс Windows для автоматизации пользовательского интерфейса. Этот API был обновлен до Windows, например, вот ссылка на улучшения Windows 8+: что нового в UI Automation?
Сборки UIAutomation в.NET внутренне используют UIAutomationCore.dll. Однако Microsoft никогда не обновляла их до новых функций встроенного API автоматизации пользовательского интерфейса. Поэтому многие свойства (например, все очень полезные свойства ARIA), шаблоны, события и т. Д. Отсутствуют, если вы используете исходную.NET UIAutomation.
Но в мире.NET все еще есть надежда, потому что здесь есть проект: https://uiacomwrapper.codeplex.com/ который является совместимой с исходным кодом более новой версией.NET UIAutomation (фактически она была написана Microsoft парень, я не понимаю, почему они не публикуют это более официальным способом и не обновляют UIAutomation.NET...). Он определяет большинство новых свойств, шаблонов и интерфейсов Windows 8.