如何使用C#获取AutomationElement的LegacyIAccessible.State和其他LegacyIAccessibles?
就像工具中的 Inspect.exe 一样。
The LegacyIAccessible
是新的,并且不像 .NET 4.0 那样在 .NET 级别中可用。但有一个CodePlex 上的项目 http://uiacomwrapper.codeplex.com/有一个较新的实现变更集38718 http://uiacomwrapper.codeplex.com/SourceControl/changeset/changes/38718#添加了对此的支持。
请注意,您必须从源代码编译该项目,不幸的是,最新的二进制版本太旧,无法包含此内容......
你想做的是这样的:
if ((bool) child.GetCurrentPropertyValue(AutomationElementIdentifiers.IsLegacyIAccessiblePatternAvailableProperty)) {
var pattern = ((LegacyIAccessiblePattern) child.GetCurrentPattern(LegacyIAccessiblePattern.Pattern));
var state = pattern.GetIAccessible().accState;
// Do something with state...
}
源代码中的注释说这些是 Windows 7 的新功能,但我让它可以在 Windows XP SP3 上运行...
希望这可以帮助!
/AZ
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)