更新内容
只列会改变你能构建什么、或改变已有流程行为的变化。没有可见影响的修复不在此列。
有新版本时应用会告诉你,并直接从横幅安装;下载页始终提供当前版本。
1.9 —— 桌面模式
让 Microbe Studio 不再只服务模拟器的一次发布。流程现在能驱动你自己电脑上的 Windows 应用,用的是同一个编辑器、同一套节点、同样的队列与计划。从桌面模式开始。
两个工作区,而不是一个带筛选的界面
Settings → 运行环境在 MuMu 模拟器与桌面之间切换,切换替换的是整个外壳:仪表盘、流程列表、队列和计划都只显示那个环境的内容。另一边分毫未动,切回去就是原样。
每个队列条目和每条计划都记得自己属于哪个工作区,所以一条桌面例程和一条模拟器例程可以共处一台机器而永不相遇。
每个节点自己说明作用于什么
桌面有许多窗口,所以"屏幕"不算一个答案。每个动作或读屏节点现在都带一个 Execution Context:Active Window、Specific Window、Entire Desktop、Monitor,或锚定在其中之一上的 Region。
按节点设置是刻意的——真实的桌面工作就是从一个窗口读一个值,再敲进另一个窗口。窗口以描述保存(进程、标题片段、窗口类、别名),从不保存句柄,所以应用重启后流程依然成立。套住不止一个窗口的描述会在运行时被拒绝而不是乱猜;窗口选择对话框里的测试匹配会在你保存前告诉你数量。
打开应用
一个新的操作节点。它先检查流程需要的窗口是否已经存在,只有不存在时才启动程序——所以同一条流程冷启动和热启动都能跑,第二次运行也不会再开一个副本。它会等窗口来到最前,而不只是打开,并在程序自己的目录下启动它。见打开应用。
对着流程真正会读的东西编写
Live Preview 接受与节点相同的五种目标。选择来源提供整个桌面、显示器(当你有多块屏时)和应用程序窗口——于是作用于整块屏幕的流程就在整块屏幕上绘制,用的正是运行时将使用的坐标系。
Test Node 在桌面流程上可用,它绑定该节点自己的 Execution Context,并像真实运行一样还原编写时的窗口形状。检查一个 Click 不再意味着跑完整条流程。
Microbe Studio 还会把自己的窗口排除在它拍的每一张图之外,所以在编辑器压着目标区域时截取的模板,拿到的仍是它背后的内容。
当流程正在驱动你的机器
因为桌面运行移动的是你真实的鼠标和键盘,产品从不掩饰这件事:
- 浮层显示运行状态,并在流程操控期间点击穿透,所以它绝不会吞掉点击或抢走焦点。它的按钮在运行时是 Stop,运行结束后是 Dismiss。
- 移动鼠标或敲键盘就会让运行暂停在下一个节点边界。暂停期间流程里的一切超时和期限都冻结。
- Ctrl+Alt+S 暂停、Ctrl+Alt+R 恢复,在任何窗口下都有效;恢复前有三秒倒计时才重新开始输入。
- 暂停中的计划运行会在你配置的分钟数后干净停止;设 0 表示一直等。
桌面特有的节点行为
| 节点 | 在桌面流程上 |
|---|---|
| Key Press | 能按住 Ctrl / Alt / Shift / Win,所以 Ctrl+S 或 Win+D 只是一个节点 |
| Input Text | 以完整 Unicode 输入,与键盘布局无关;Clear before input 是 Ctrl+A 再 Delete,而不是一串有上限的退格 |
| Zoom | 不提供——窗口没有捏合手势 |
动作之前,运行会把目标窗口恢复成流程绘制时的形状并重新测量。应用拒绝该尺寸时,运行连同两个数字一起被拒绝——因为在错误的坐标上成功,比不运行更糟。
新增错误码
APP_LAUNCH_FAILED、WINDOW_NOT_FOUND、WINDOW_AMBIGUOUS、TARGET_SURFACE_UNAVAILABLE、TARGET_CONTEXT_INVALID——各有各的修法,列在错误码里。
授权
桌面模式是 License Package 中的 Windows Mode 能力。没有它时应用会明说,并停留在模拟器模式。发布到商店的流程会标注它面向的模式,该标注读自上传的包本身,所以买家在付款前就知道。
全新的 OCR 引擎
Read Text 从 Tesseract 换成了随应用打包的多语言模型。对你而言的变化:
- **不再有语言包。**一个模型随应用一起打包,选择器里的每种语言在每个版本上都能用。
- 多行区域按行读取——节点找出笔画断开的位置,逐条读取,再用空格拼接。无需配置。
- 在同样的像素上,读得更快也更准。
一个必须说清的局限:模型的字符集缺少大部分越南语声调字母,所以精确读取带声调的越南语并不可靠。请优先使用 Number / Counter / Time / Percentage 类型,或把逻辑锚定在数字上。
Share Image
位于 Monitor Scope 内的检测节点,可以把它刚捕获的那一帧交给该范围所守望流程的节点。此后监控器按每收到一帧检查一次,而不是按自己的定时器——于是守望流程分析的正是主流程刚刚操作过的像素,它的开销也随主流程走,而不是一个固定间隔。
发布方挑选接收方;接收节点什么都不用配。两条校验警告会抓住接错线的情况:SHARE_TARGET_NOT_MONITORED 和 MONITOR_NOT_SHARE_FED。
编辑器与运行时
- 校验信息会把你带到出错的那个节点——它是一个链接,不是一句描述。
- 分组与备注可折叠,展示某个节点时画布是移动过去,而不是瞬移。
- Monitor Scope:紫色框就是范围——成员按几何判定,所以把节点移进移出只是拖拽。每次武装的计数与整次运行的总计都显示在 Runtime 标签页,每个流程的监控器数量上限已取消。
- Swipe 可以把目标带到屏幕中央,不用你自己算坐标。
- Find Image 只匹配节点真正需要的模板。
- Read Text:单个区域也能为输出命名并设默认值,就像多区域读取一直以来那样。
- 表达式新增
random(low, high),让流程自己改变上限。 - 计划任务的条目可以重新排序,并折叠成列表。
- 更新横幅上的 Download 按钮现在会直接安装新版本,而不只是下载。
已移除
Parallel 已从工具箱移除。它从未让任何东西真正并发——这个产品里的并行意味着更多实例,每个带自己的队列。仍带着它的流程照常运行;请改用 Monitor Scope。见遗留节点。