You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core 8控制台应用中如何使用AutomationElement?

在.NET Core 8控制台应用中使用AutomationElement实现UI自动化

1. 安装正确的NuGet包

在Visual Studio 2022中右键项目 → 管理NuGet程序包,搜索并安装以下两个官方兼容包:

  • System.Windows.Automation.UIAutomationClient
  • System.Windows.Automation.UIAutomationTypes

这两个包专门适配.NET Core/.NET 5+环境,包含AutomationElement类及UI自动化所需的全部核心类型。

2. 引用命名空间

在代码文件顶部添加命名空间引用:

using System.Windows.Automation;

3. 基础使用示例

以下是获取桌面根元素并查找记事本窗口的简单实现:

// 获取桌面根元素
AutomationElement desktopRoot = AutomationElement.RootElement;

// 查找标题包含"记事本"的窗口
var windowCondition = new PropertyCondition(
    AutomationElement.NameProperty, 
    "记事本", 
    PropertyConditionFlags.IgnoreCase);
AutomationElement notepadWindow = desktopRoot.FindFirst(TreeScope.Children, windowCondition);

if (notepadWindow != null)
{
    // 查找记事本的编辑框控件
    var editBoxCondition = new PropertyCondition(
        AutomationElement.ControlTypeProperty, 
        ControlType.Edit);
    AutomationElement editBox = notepadWindow.FindFirst(TreeScope.Descendants, editBoxCondition);

    // 向编辑框输入文本
    if (editBox != null && editBox.TryGetCurrentPattern(ValuePattern.Pattern, out object patternObj))
    {
        var valuePattern = patternObj as ValuePattern;
        valuePattern?.SetValue("在.NET Core 8中实现UI自动化");
    }
}

关键注意事项

  • 应用需以管理员权限运行,否则可能无法访问系统级窗口或受保护控件。可右键程序选择"以管理员身份运行",或在项目属性中配置启用完全信任权限。
  • 避免使用非官方的第三方UIAutomation包,这类包大多未适配.NET Core 8环境,容易出现类型缺失问题。

内容的提问来源于stack exchange,提问作者Omar Ababneh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 08:07:14