c# - Windows.Automation 中的 LegacyIAccessible

标签 c# winapi automation

如何用C#获取AutomationElement的LegacyIAccessible.State等LegacyIAccessibles? 就像工具中的 Inspect.exe 一样。

最佳答案

LegacyIAccessible 是新的,在 .NET 级别中不像 .NET 4.0 中那样可用。但是有一个project on CodePlexchange set 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 上运行...

希望这对您有所帮助!

/阿兹

关于c# - Windows.Automation 中的 LegacyIAccessible,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6837935/

相关文章:

bash - xdotool 记录器

java - 如何在不同类中使用变量而不改变它

java - 我做错了什么? (编写虚拟 Activity 并通过 C# 调用它)

c# - 将 DateTime 绑定(bind)到单独的日期和时间字段的最佳方法?

c++ - 如何将 std::string 转换为 BSTR*?

c# - 如何在没有物理硬件的情况下利用多显示器设置的功能?

java - 获取相同的双因素代码,就像我在 JAVA 中的 App Authy 中收到的一样

c# - 使用 jQuery AJAX 和处理程序 (ashx) 上传文件不起作用

c# - 角色自动移动时卡住

c++ - Gdiplus::Bitmap::FromHICON 失败