开车。网
开车。NET是一个为代理AI构建的Windows桌面自动化工具包。它通过模型上下文协议(MCP)公开Windows桌面应用程序,因此AI代理(如GitHub Copilot、Claude或任何兼容MCP的客户端)可以发现进程、检查UI树、与控件交互、捕获视觉证据、运行可访问性分析,并执行确定性的多步骤UI工作流。
开车。NET适用于任何公开Microsoft UI自动化界面的应用程序,包括使用WinForms、WinUI 3、WPF、UWP、Electron、Flutter、Qt、Java/Swing和Win32/MFC构建的应用程序。它完全在外部运行——没有代码注入,没有像素匹配,也没有对目标应用程序的修改。
开车的时候。NET可以通过其CLI和Companion应用程序手动使用,它最好由代理AI驱动,可以实时规划、观察和响应实时桌面应用程序。MCP服务器为代理提供了一个结构化的、基于工具的界面,以实现完整的Windows UI自动化界面。
开车。NET公共版本是专有的闭源二进制文件。它们可供个人免费使用。商业使用需要单独的付费许可证。
_Companion分析仪表板对连接应用程序的自动化准备情况进行评分,并显示可操作的可访问性结果:_
选择您的表面
| 如果你需要… | 使用这个表面 | 为什么 |
|---|---|---|
| 让GitHub Copilot或其他MCP客户端迭代地探索实时应用程序 | MCP服务器 | 最适合代理驱动的工作流,其中下一步操作取决于代理发现的内容。 |
| 从终端或CI | CLI | 运行一个确定性命令或脚本步骤,最适合一次性发现、检查、报告、捕获、生命周期控制和测试执行。 |
| 目视检查实时UIA树,读取结果,并通过直接反馈对可访问性问题进行分类 | 配套 | 最适合入职、手动分析、快照比较、模式检查和交互式调试。 |
| 管理工作区、检查服务器运行状况并应用更新 | 帮助程序 | 最适合安装管理、工作区配置和保留驱动器。NET最新版本。 |
新用户的典型流程:
- 运行安装程序并使用 助手 配置您的工作区。
- 使用 同伴 了解目标应用程序并检查其实时UIA表面。
- 使用 命令行界面 当您需要可重复的一次性命令或工件生成时。
- 使用 MCP服务器 当你希望代理端到端地驱动应用程序时。
______________________________________________________________________
特性
进程发现和会话管理
- 查找具有可见窗口、可选窗口清单和父/子进程层次结构的正在运行的桌面进程
- 按进程名称筛选。仅限.NET,或特定于应用程序的分支(例如Firefox、Electron)
- 通过可重用会话连接到目标应用程序;根据工作流需要重定向到辅助窗口、对话框或弹出按钮
- 会话开始警告吐司采用丙烯酸风格,并在自动化开始前进行倒计时(可配置,每个会话可覆盖)
- 窗口句柄别名,用于在命名窗口之间快速重定向
- 连接过滤器:
processName,processId,windowTitleRegex,executablePath,commandLineContains connectNewest/connectLatest多实例目标的操作- 用于协调具有指定角色的多个连接应用程序的会话组
- 终止会话崩溃分诊通过
session status,包括相关的WER转储路径、崩溃日志、Windows应用程序事件条目,以及受测应用程序在这些工件可用时的启发式退出摘要
元素查询与检查
- 按自动化ID、名称、控件类型、类名或分层路径选择器查找UI元素(例如。
Pane[automationId=MainPanel] > Button[name=Save]) - 枚举具有可配置深度(0-25)和节点预算(1-5000)的元素树
- 带内树截断和连续提示用于增量子树钻取
- 读取元素属性、子元素、父元素和网格/表数据
matchIndex用于消除重复的兄弟元素的歧义- 详细信息模式,包括类名、帮助文本、模式、快捷键、访问键、项目状态,由引用标记
- 详尽的单一元素检查:所有UIA属性、支持的模式、可用操作、当前值、切换/扩展状态
- WinUI框架工件注释
TitleBar占位符和类似的提供者工件 - 搜索范围:
descendants,children,或subtree - 选择器解释:在操作之前验证选择器是如何解析的,显示没有副作用的精确解析路径
UI交互
- 点击操作 --单击、双击、右键单击并返回目标元素确认
- 文本输入 --type(清除然后键入)、clear、sendKeys(键盘快捷键,如
Ctrl+S,Alt+F4) - 选择 --选择组合框/按名称列出项目
- 切换并展开 --切换复选框、展开/折叠树节点和可折叠区域
- 滚动 --scrollIntoView在交互之前将屏幕外元素带入视口
- 拖放 --将元素拖动到目标元素,或使用类似人类的放松和可选的鼠标按钮进行平滑的鼠标移动
- 聚焦和突出 --在关键操作之前,设置键盘焦点、闪烁/突出显示元素以进行视觉确认
- 剪贴板 --读写系统剪贴板内容
- 窗口级别输入 —
sendKeys和type没有aelementId将按键直接发送到前台窗口,这对于没有UIA元素的浏览器内容区域和表面很有用 - 窗口手柄定位 --可选择针对特定窗口进行按键传递
- 安全文本输入 --可以键入已注册的机密,而不会在响应中回显或记录
状态等待
- 等待元素存在、删除、属性更改、文本相等、启用状态、可见状态、窗口打开/关闭和结构更改
- 基于轮询的检测(间隔250ms)和UIA事件驱动的结构变化检测
- 可配置的超时时间长达300秒
- 在提交超时预算之前调试等待条件的选择器解释模式
- 分层路径选择器和
matchIndex用于精确的条件瞄准
窗口管理
- 列出所有可见的顶级窗口,包括位置、大小、可见性和模态状态
- 使用排名建议操作和置信度检测阻塞模式对话框
- 通过一次恢复来停用阻断剂——点击推荐或命名按钮
- 调整大小、移动、最小化、最大化、恢复、关闭、放到前面
- 通过自动化分支进行浏览器登录和首次运行表面分类
- 会话重定向,将自动化根移动到不同的顶级窗口
桌面指标
- 查询连接的监视器,包括边界、工作区域和DPI比例
- 识别当前前景窗口
电脑屏幕截图工具
- 捕获整个窗口或单个元素
- 当DWM报告更紧密的可见帧时,窗口捕获会自动修剪不可见的非客户端调整边框,避免原始窗口矩形捕获中的不透明黑色边缘带
- Base64内联MCP图像,用于直接查看AI代理
- 文件输出为PNG(默认,保留alpha)或JPEG
- 可选边框,厚度和颜色可配置(默认关闭)
- 可选的软阴影(强度55)用于文档截图和检查视觉证据
- 丙烯酸和透明窗户后面的渐变彩虹背景(默认打开)
- 元素捕获中用于上下文周围区域的元素填充
- 次要窗口的窗口句柄定位
批量自动化
- 最多执行100次
query,interact,wait_for,以及assert在单个工具调用中原子性地执行步骤 - 变量绑定:
saveAs保存第一个匹配的元素ID,save通过JSON路径提取结果字段,${name}后续步骤中的参考 - 有条件执行:
when具有可变等式、不等式和存在性检验 - 每一步重试策略:
maxAttempts,delayMs,backoffMs - 定时控制:
delayBetweenMs在批处理级别,delayBeforeMs/delayAfterMs每步 - 每一步错误处理:
continueOnError覆盖批处理级别stopOnError - 单个批处理调用中跨应用程序工作流的每一步会话覆盖
- 保留的执行变量:
lastStepSuccess,lastStepSkipped,lastStepError,step1Success等等。 - 选择器解释批内诊断的步骤
声明性断言
- 无需编写过程代码即可评估UI元素状态、属性和元素计数
- 可组合子句:属性等于、包含、存在、启用、可见、计数比较
- 作为独立的MCP工具、CLI命令和批处理步骤提供
实时可观察性
- 订阅持续的UI更改事件:结构更改、属性更改、焦点更改和调用
- 按需清空排队的事件,以实现代理驱动的反应式工作流
- 事件驱动的轮询替代方案,用于监控动态UI状态
分析和报告
27项自动化就绪性和可访问性合规性检查。DNC022(小点击/触摸目标)属于无障碍合规,因为它映射到WCAG 2.5.8目标大小:
| 代码 | 检查 | 严重性 |
|---|---|---|
| DNC001 | 交互元素上缺少Automation Id | 错误 |
| DNC002 | 名称属性缺失或为空 | 错误 |
| DNC003 | 输入控件上缺少标记 | 警告 |
| DNC004 | 同一父级中存在重复的Automation ID | 错误 |
| DNC005 | 缺少键盘访问(加速器键/访问键) | 警告 |
| DNC006 | 空白可点击区域(零大小的边界矩形) | 严重 |
| DNC007 | 交互元素上不支持UIA模式 | 错误 |
| DNC008 | 深度嵌套超出可配置阈值 | 信息 |
| DNC009 | 不带视觉指示器的只读ValuePattern元素 | 提示 |
| DNC010 | 复杂控件上缺少帮助文本 | 信息 |
| DNC011 | 带可见边界的屏幕外元素 | 警告 |
| DNC012 | 焦点顺序与视觉布局顺序不匹配 | 警告 |
| DNC013 | 仅图标按钮上缺少工具提示 | 警告 |
| DNC014 | 没有可访问名称的Landmark/GroupBox | 信息 |
| DNC015 | 不支持UIA通知的活动区域 | 提示 |
| DNC016 | 交互元素重叠 | 警告 |
| DNC017 | 兄弟命名不一致 | 警告 |
| DNC018 | 元素选择器不明确(不能唯一定位) | 警告 |
| DNC019 | 静态内容上出现意外标记 | 警告 |
| DNC020 | 输入名称反映当前值,而不是字段用途 | 警告 |
| DNC021 | 大型框架表面缺少语义后代 | 警告 |
| DNC022 | 最小WCAG 2.5.8以下的小点击/触摸目标 | 警告 |
| DNC023 | 禁用元素,无无无障碍解释 | 信息 |
| DNC024 | 图像没有可访问的名称 | 警告 |
| DNC025 | 交互元素排除在可访问性视图之外 | 警告 |
| DNC026 | 状态信息缺失的状态控制 | 警告 |
| DNC027 | 没有可访问名称的窗口或对话框 | 错误 |
- 导出为Markdown、JSON、HTML或SARIF v2.1.0
- 制定补救计划,并提供优先的、特定于框架的修复指导
- 报告和计划在工作区下编写
.drive-net目录 - 框架检测:WinForms、WinUI 3、WPF、UWP、Flutter、Electron、Qt、Java/Swing、Win32/MFC
- 评分等级:金色、绿色、琥珀色、红色或不确定(当UIA表面不完整时)
- 每次检查可配置的严重性覆盖
快照比较
- 创建
.dncsnap实时会话的分析基线 - 比较两个快照以跟踪改进或检测回归
- Markdown或JSON格式的差异输出
- 在工作空间下编写的工件
.drive-net目录
记录到脚本
- 将实时交互、查询和等待记录到可回放的脚本中
- 输出为批处理JSON(用于
batch工具)或YAML测试套件(用于test命令) - 自动
saveAs/在查询元素并与之交互时插入变量 - 重复连续等待合并以降低噪音
- 机密值编辑:已注册的机密将替换为
[REDACTED] - 可通过MCP获得
recordCLI工具record命令和同伴交互测试仪
应用生命周期
- 使用可配置参数和工作目录启动目标应用程序
- 停止优雅或强制运行应用程序
- 查询应用程序状态(运行、PID、窗口标题)
应用程序分支
- 自动化分支将特定于应用程序的行为与通用UI自动化管道隔离开来
- Firefox分支:auto丰富了发现功能,支持最新实例附加过滤,降低入职窗口的优先级,对首次运行的拦截器表面进行分类和清除
- 电子分支:auto丰富了基于Electron的桌面应用程序的发现,将DevTools窗口分类为次要表面,并适应Chromium托管应用程序中常见的单一内容窗格UIA模式
- Win32分支:提供对常见Win32/MFC对话框类的感知,在窗口解析期间降低常见对话框(打开、另存为)的优先级,并调整旧桌面应用程序的阻止程序分类
______________________________________________________________________
包含的组件
| 组件 | 描述 |
|---|---|
| MCP服务器 | stdio传输上的17个工具、4个资源和3个提示 |
| 命令行界面 | 22个顶级命令,用于发现、检查、交互、分析、测试等 |
| 同伴 | WinUI 3桌面应用程序,用于交互式分析、元素探索、代码生成、录制和快照比较 |
| 助手 | WinUI 3工作区管理器,用于添加工作区、检查运行状况、查看服务器状态和应用更新 |
| 分析引擎 | MCP、CLI和Companion使用的共享分析、报告和快照工具 |
| 副驾驶技能 | 19个工作区范围的技能文件,用于目标代理指导 |
| 安装程序 | 安装、更新、卸载和工件清理——也可用作自动化工作流的PowerShell脚本 |
______________________________________________________________________
MCP服务器
工具
| 工具 | 描述 | 只读 |
|---|---|---|
discover | 列出正在运行的流程、可选的窗口清单和流程层次结构 | 是 |
session | 连接到目标应用程序、重定向目标或断开与目标应用程序的连接 | 否 |
query | 查找/解析元素、枚举树、读取属性、网格数据、解释选择器 | 是 |
inspect | 详尽的元素信息:属性、支持的模式、可用操作 | 是 |
interact | 单击、键入、选择、切换、展开、折叠、拖动、鼠标移动、悬停、移动到、发送密钥、剪贴板、突出显示 | 否 |
wait_for | 使用轮询、事件驱动检测、子监视和选择器诊断等待UI和窗口条件 | 是 |
window | 列出窗口、检测/关闭阻止程序、调整大小、移动、最小化、最大化、恢复、关闭窗口并将其置于前面 | 否 |
desktop | 查询操作系统级监视器边界、DPI比例、前台窗口和可见顶级窗口 | 是 |
capture | 带有可选边框、阴影、渐变背景和PNG/JPEG输出的截图窗口或元素 | 否 |
batch | 使用变量绑定原子地执行多达100个查询/交互/等待/断言/报告步骤 | 否 |
report | 运行自动化分析并编写Markdown/JSON/HTML/SARIF/计划工件 | 否 |
snapshot | 创建或比较可重用 .dncsnap 分析基线 | 否 |
lifecycle | 启动、停止或查询目标应用程序的状态 | 否 |
assert | 根据UI元素状态、属性、文本、计数、帮助文本和项目状态评估声明性断言 | 是 |
secret | 注册、撤销或清除内存中的机密以进行安全数据输入 | 否 |
observe | 订阅实时UI事件(结构、属性、焦点、调用)并排出队列中的更改 | 是 |
record | 将交互记录到可回放的批处理JSON或YAML测试套件中 | 否 |
资源
| 资源 | URI | 描述 |
|---|---|---|
sessions | drivenet://sessions | 枚举具有状态的活动会话 |
session-windows | drivenet://session/{sessionId}/windows | 连接会话的顶级窗口 |
session-element-tree | drivenet://session/{sessionId}/tree | 用于检查优先诊断的带电元件树 |
session-events | drivenet://session/{sessionId}/events | 用于实时可观察性的事件订阅管理URI |
提示
| 提示 | 描述 |
|---|---|
drivenet-usage | 通用使用指南:连接、查询、交互、捕获 |
drivenet-testing | UI测试工作流:查找元素、断言状态、验证 |
drivenet-debugging | 调查UI问题:检查元素、捕获、探索树 |
______________________________________________________________________
命令行界面
快速的一次性命令,重用与MCP服务器相同的核心服务。当需要附加到进程时,每个命令都会打开自己的短期会话。
当您需要对受测应用程序进行持久的崩溃后分流时,请使用MCP会话,而不是重复的一次性CLI命令。终止的MCP session status 响应可以保持相关性 crashEvidence 对于失败的流程实例。
命令
| 命令 | 描述 |
|---|---|
doctor | 检查UI自动化访问,报告会话类型和操作系统详细信息,并总结最近的助手或伴侣崩溃证据 |
discover | 列出带有可选过滤器的可见窗口进程 |
pick | 解决一个确定性过程目标,并为以后的命令建议一个精确的PID |
desktop | 查询监视器、前台窗口或所有可见的顶级窗口 |
windows | 列表/管理窗口:列表、阻止程序、解除阻止程序、调整大小、移动、最小化、最大化、恢复、关闭、brightToFront |
find | 使用平面或层次选择器查找匹配的UI元素 |
inspect | 详细的单个元素细节:模式、值、切换状态 |
tree | 使用深度/节点预算和截断提示渲染UI自动化层次结构 |
interact | 执行操作:单击、双击、右键单击、键入、清除、发送按键、选择、切换、展开、折叠、滚动IntoView、拖动To、鼠标移动、悬停、移动To、设置焦点、突出显示、剪贴板 |
wait_for | 使用选择器诊断和可配置超时等待UI/窗口条件 |
batch | 使用变量绑定、断言和报告步骤原子地执行多步JSON序列 |
playback | 从一个CLI入口点回放记录的批JSON或YAML套件/清单文件 |
capture | 使用可选的边框、阴影、渐变背景和PNG/JPEG编码捕获流程窗口或UI元素 |
demo | 运行内置的可视化验证流程,例如 demo mouse-move |
report | 运行分析管道并编写报告工件 |
snapshot | 创建或比较分析基线 |
scaffold | 生成启动程序YAML可访问性测试套件模板 |
test | 运行具有结构化结果输出的YAML测试套件或清单 |
lifecycle | 启动、停止或查询目标应用程序的状态 |
assert | 根据UI元素状态、属性、计数、帮助文本和项目状态评估声明性断言 |
observe | 订阅实时UI自动化事件,并在事件到达时打印出来 |
record | 将交互记录到批处理JSON或YAML测试套件中 |
快速示例
DriveNet.Cli.exe doctor
DriveNet.Cli.exe discover --dotnet-only
DriveNet.Cli.exe pick --process-name MyApp --newest --json
DriveNet.Cli.exe desktop --action monitors
DriveNet.Cli.exe find --process-name MyApp --automation-id SubmitButton
DriveNet.Cli.exe find --process-name MyApp --path "Pane[automationId=MainPanel] > Button[name=Save]" --explain
DriveNet.Cli.exe interact --process-name MyApp --action click --automation-id SubmitButton
DriveNet.Cli.exe wait_for --process-name MyApp --condition elementExists --automation-id SuccessLabel
DriveNet.Cli.exe playback --input recorded.json --process-name MyApp
DriveNet.Cli.exe capture --process-name MyApp --automation-id SubmitButton
DriveNet.Cli.exe capture --process-name MyApp --shadow --border-thickness 2 --border-color "#336699"
DriveNet.Cli.exe capture --process-name MyApp --image-format jpg --output screenshot.jpg
DriveNet.Cli.exe demo mouse-move --process-name MyApp
DriveNet.Cli.exe report --process-name MyApp --format markdown
DriveNet.Cli.exe snapshot create --process-name MyApp --output snapshots/latest.dncsnap
DriveNet.Cli.exe test --manifest tests/definitions/manifest.yaml --result-json results.json所有命令默认为人类可读的输出和支持 --json 用于脚本编写和代理消费。
______________________________________________________________________
YAML测试运行器
用YAML编写的确定性、可重复的UI自动化工作流:
- 清单 在一次调用中运行多个套件
- 套房 为有序步骤维护一个实时会话,以便保存的元素ID保持有效
- 应用程序生命周期:启动可执行文件,启动助手应用程序,
single_instance政策(reuse/restart),可配置启动等待 - 步骤工具:
discover,query,interact,wait_for,window,capture,desktop - 变量:
saveAs对于元素ID,save通过JSON路径提取,${name}后续步骤中的参考 - 期望:
success,count,count_gt,count_gte,contains,not_contains,property/equals,exists,condition_met,file_exists - 条件执行:
when具有可变等式、不等式和存在性检验 - 重试策略:
max_attempts,delay_ms,backoff_ms - 时机:
delay_before_ms,delay_after_ms,continue_on_failure - 生命周期块:
setup,teardown,finally/cleanup(即使设置失败,也始终运行) - 保留变量:
lastStepIndex,lastStepSuccess,lastStepSkipped,lastStepError,以及每个应用程序的变量(appProcessId,appWindowTitle等等) - 结构化输出:
--result-json用于机器可读的每一步有效载荷、保存的变量和原始命令错误,以进行代理分类 - JUnit XML:
--junit-xml用于CI集成
name: Login Flow Tests
app:
exe: path/to/MyApp.exe
startup_wait_ms: 3000
tests:
- name: fill and submit login form
steps:
- tool: query
action: find
args:
automation_id: txtUsername
save:
username_field: $.items[0].elementId
- tool: interact
action: type
args:
element_id: "${username_field}"
value: "alice@example.com"
- tool: query
action: find
args:
automation_id: btnLogin
save:
login_button: $.items[0].elementId
- tool: interact
action: click
args:
element_id: "${login_button}"
- tool: wait_for
args:
condition: elementExists
automation_id: lblWelcome
expect:
success: true______________________________________________________________________
DriveNet伴侣
独立的WinUI 3桌面应用程序,用于交互式可访问性和自动化就绪性分析。Companion提供了一个可视化工作台,用于探索、分析和测试任何正在运行的Windows桌面应用程序的UIA表面。
_“目标选择”页面列出了具有框架检测、窗口标题和每个窗口定位的正在运行的进程:_
_树资源管理器提供了一个带有搜索、元素属性和交互式操作按钮的实时UIA元素层次结构:_
目标选择和会话
- 具有父子分组和应用程序图标的分层流程/窗口树
- 当过滤器缩小到一个目标时,自动选择每个窗口的目标
- 具有重定向到辅助窗口和对话框的持久会话
分析
- 27项分析检查 自动化就绪(DNC001-DNC009、DNC016-DNC018)和无障碍合规(DNC010-DNC015、DNC019-DNC022、DNC023-DNC027)
- 分数等级:金色、绿色、琥珀色、红色和不确定
- 框架检测:WinForms、WinUI 3、WPF、UWP、Flutter、Electron、Qt、Java/Swing、Win32/MFC——具有特定于框架的修复指导和严重性调整
- 分析模式切换:在自动化就绪和可访问性合规模式之间切换
- 严重性过滤:按严重程度查看结果
- 观看模式:定期自动重新分析,具有变化检测和时间线记录功能
- 可配置的严重性覆盖 每张支票
补救计划
- 根据分析结果生成的优先修复指南
- 工作量估算(快速、中等、复杂)和影响严重程度排名
- 按控制类型或模式分组的框架特定建议
出口
- 标记语言 --人类可读的发现和建议
- JSON --机器可解析的工具发现
- 超文本标记语言 --格式丰富的报告
- SARIF v2.1.0 --用于代码扫描和CI工作流
- AI提示 --生成的补救指南可导出到文件或剪贴板
交互式工具
- 树资源管理器 --延迟加载的UI自动化元素层次结构,包括搜索、属性查看、可配置的深度/节点预算和框架工件注释
- 元素选择器 --十字准线选择工具,具有悬停突出显示、元素闪烁和基于超时的自动解除功能
- 交互测试仪 --测试元素交互(调用、切换、值、展开/折叠、选择、范围值、滚动),具有实时反馈和操作日志记录功能
- 代码生成 --从拾取的元素生成交互、等待条件和批处理序列代码;构建多步骤表单自动化序列
- 图案覆盖图 --整个元素树的UIA模式可用性矩阵,包括覆盖百分比和框架感知建议
- 快照比较 --创建
.dncsnap基线并对其进行比较,以跟踪分数变化、新发现和随时间推移而解决的问题
录制
- 将实时交互记录到可回放的批处理JSON或YAML测试套件中
- 查询元素并与之交互时自动绑定变量
- 注册机密的机密值编辑
元素突出显示
- 按严重程度(关键/错误、警告、信息)对目标应用程序中标记元素进行颜色编码覆盖
- 可配置的突出显示持续时间,可延长选择器选择的时间
用户界面
- 全键盘导航,可配置快捷键(Ctrl+O、Ctrl+T、Ctrl+Shift+A等)
- 带有复制到剪贴板操作的上下文菜单
- 深色/浅色/高对比度主题支持,丙烯酸背景
- 带有框架徽章、连接状态和运行状态指示器的状态栏
命令行选项
--connect-self--启动时自动连接到Companion自己的窗口--connect-self-analysis--连接和自动运行分析(用于自回归测试)--open-analysis--启动时直接导航到“分析”页面--allow-multiple-instances--绕过单实例强制
______________________________________________________________________
DriveNet助手
用于管理驱动器的独立WinUI 3桌面应用程序。NET安装、工作区和服务器运行状况。Helper在安装后自动启动,是配置和维护驱动器的推荐方式。网。
_工作区仪表板以健康状态徽章一目了然地显示所有受管理的工作区:_
_服务器状态页面为实时日志查看器提供了实时MCP工具调用和会话活动:_
Drive.NET Helper — server status dashboard with live log viewer showing MCP tool invocations
工作区
- 添加工作区 --选择任何文件夹并将其配置为托管工作区
- 拖放 --将文件夹放到仪表板上,将其注册为工作区
- 扫描根目录 --递归扫描父文件夹以自动发现和注册工作区候选者
- 工作区仪表板 --所有托管工作区一目了然,带有健康状态指示器(健康、需要刷新、损坏)
- 每个工作区操作:
- 在首选编辑器(VS Code、Rider、Cursor、Visual Studio等)中打开 - 查看和编辑 .vscode/mcp.json 使用实时JSON验证 - 使用“全部更新”功能浏览已安装的副驾驶技能 - 刷新单个工作区配置 - 从托管列表中删除而不删除文件
- 全部修复 --一次性批量修复所有不健康的工作区
服务器
- 实时服务器状态仪表板,带有运行/停止指示器和进程信息(PID、正常运行时间)
- 启动和停止DriveNet。服务器进程
- 具有自动刷新和严重性级别过滤功能的服务器日志查看器(通过致命跟踪)
- 日志文件管理--刷新、在编辑器中打开或清除日志文件
医生
- 跑
doctor带有格式化输出的诊断,显示环境摘要、安装根、版本、托管工作区计数、操作系统、体系结构以及最新的持久化帮助程序崩溃摘要(如果可用)
更新
- 检查是否有新驱动器。NET从GitHub发布
- 下载并应用更新,包括进度和文件验证
- 导入预下载的发布包以进行离线更新
- 查看更新历史记录,包括版本、日期和来源(在线/离线)
工具
- 直接从帮助程序启动DriveNet Companion
- 查看所有驱动器的安装路径。NET组件
设置
- 主题选择(系统、亮、暗),可立即更新UI
- 首选编辑器命令配置
- 启动时自动更新检查(切换)
- 为Doctor、Discover和Helper创建桌面快捷方式
- 安装路径显示,带有可点击的文件夹链接
卸载
- 清洁驱动器的拆卸。NET安装,可选工作区配置清理
______________________________________________________________________
专为代理AI设计
开车。NET是专门构建的,因此AI代理可以自主操作桌面应用程序:
- 结构化工具界面 --每个操作都是一个类型化的MCP工具调用,具有经过验证的输入和结构化的JSON响应,而不是自由形式的屏幕抓取
- 带内树截断 --大型UI树受可配置的节点预算和返回延续提示的限制,因此代理可以在没有过大负载的情况下钻取子树
- 选择器说明 --代理可以在提交点击或等待之前验证选择器是否正确解析,从而减少浪费的操作
- 阻塞检测 —
window blockers检测模态对话框并返回经过排序的建议操作(带置信度),以便代理可以取消阻止自己 - 批量变量绑定 --多步骤工作流可以将元素ID和结果字段保存到命名变量中,从而在单个工具调用中实现数据相关的自动化
- 副驾驶技能 --19种工作区范围的技能为发现、桌面指标、生命周期控制、查询、交互、等待、捕获、文档截图暂存和推广、断言、安全秘密处理、实时观察、记录、报告、快照、窗口管理、批处理自动化、CLI使用、YAML测试编写和结果json分类提供了特定于领域的指导
- MCP提示 --三个服务器托管的提示(使用、测试、调试)无需额外配置即可为代理提供上下文指导
- 应用程序分支 --特定于应用程序的自动化逻辑(例如Firefox、Electron、Win32/MFC)被隔离到多个分支中,这些分支丰富了发现、过滤实例和对阻断器表面进行分类,而不会污染通用管道
- 实时可观察性 --the
observe该工具允许代理订阅连续的UI更改事件(结构更改、属性更改、焦点更改、调用),以便他们可以对UI状态转换做出反应,而无需轮询 - 多应用程序编排 --会话组协调多个具有命名角色的连接应用程序,批处理步骤可以针对每个步骤
sessionId在单个批处理调用中覆盖跨应用程序工作流
______________________________________________________________________
快速开始
安装
下载相应的驱动器。NET为您的计算机发布。对于大多数用户,请运行安装程序可执行文件:
.\DriveNet-Setup-win-x64.exe如果您更喜欢便携式/脚本化安装,请使用zip捆绑包并从提取的文件夹中运行PowerShell安装程序:
.\Install-DriveNet.ps1安装可执行文件支持每个用户或每台机器的安装、“开始”菜单快捷方式、可选的桌面快捷方式和可选的CLI PATH 注册、静默安装和就地升级。便携式PowerShell安装程序仍然可用于自动化和高级工作流。
默认情况下为驱动器。NET安装到 %LOCALAPPDATA%\DriveNet 对于每个用户安装并向用户添加CLI PATH 当被选中时。
安装后, DriveNet助手 自动启动——使用它添加工作区、扫描目录和管理未来的安装。
管理工作区
随时从安装目录打开DriveNet Helper。它提供:
- 首次运行指导设置 --添加单个工作区或扫描目录树以查找所有存储库
- 工作区仪表板 --一目了然地查看运行状况并修复损坏的配置
- 服务器管理 --查看服务器状态、启动/停止服务器以及浏览日志
- 诊断 --奔跑
doctor检查以验证环境 - 更新 --检查是否有新驱动器。NET版本,下载并应用它们,然后刷新工作区
- 卸载 --清洁拆卸驱动器。NET和工作区配置
对于非交互式安装、CI或高级工作区自动化,还可以使用捆绑的PowerShell脚本:
# Install and configure a workspace in one step (non-interactive)
.\Install-DriveNet.ps1 -WorkspaceRoot C:\Source\MyApp -NonInteractive
# Configure an additional workspace against an existing install
.\Install-DriveNet.ps1 -Mode ConfigureWorkspace -WorkspaceRoot C:\Source\AnotherApp -ExistingInstallRoot C:\Tools\DriveNet -NonInteractive
# Scan a parent directory and refresh every detected workspace
.\Update-DriveNetWorkspaces.ps1 -ScanRoot C:\Source -NonInteractive
# Update or uninstall
.\Update-DriveNet.ps1 -NonInteractive
.\Uninstall-DriveNet.ps1 -NonInteractive首先使用
- 启动目标桌面应用程序。
- 确保您的工作区有驱动器。NET MCP条目
.vscode/mcp.json(助手会自动进行配置)。 - 验证该驱动器。NET可以从终端看到桌面应用程序:
DriveNet.Cli.exe doctor
DriveNet.Cli.exe discover- 请您的AI代理或Copilot连接并与应用程序交互。
示例提示:
Connect to MyApp, list the available windows, and retarget to the settings dialog if it opensFind the Submit button and click itInspect the username field and type 'alice@example.com'Capture the current dialog after clicking SaveRun an accessibility analysis report against MyApp and export as SARIFCreate an analysis snapshot, fix the flagged issues, then compare the before/after snapshots
______________________________________________________________________
文档
- 详细指南 --安装、架构、MCP配置和操作细节
- 工具索引 --所有MCP工具和CLI命令的每个工具文档索引
- 使用示例 --实用的端到端工作流
- VS代码MCP配置 --手动MCP服务器设置和故障排除
- YAML测试运行指南 --清单、套件、期望、JSON报告和故障排除
建筑
┌─────────────────────┐ stdio ┌─────────────────────────────┐
│ AI Agent / Copilot │◄──────────────►│ Drive.NET MCP Server │
│ (MCP Client) │ │ ┌─────────────────────────┐ │
└─────────────────────┘ │ │ MCP Layer (17 Tools, │ │
│ │ 4 Resources, 3 Prompts)│ │
│ ├─────────────────────────┤ │
│ │ Session Manager │ │
│ │ (multi-app tracking) │ │
│ ├─────────────────────────┤ │
│ │ UIA Engine │ │
│ │ (element query, │ │
│ │ interaction, │ │
│ │ event subscription) │ │
│ └─────────┬───────────────┘ │
└────────────┼─────────────────┘
│ UIA / COM
┌────────────▼─────────────────┐
│ Target Desktop Application │
│ (WinForms / WinUI / WPF / │
│ Electron / Win32 / etc.) │
└──────────────────────────────┘需求
- Windows 10或Windows 11
- 具有Microsoft UI Automation界面的正在运行的目标应用程序
