从一个 Windows 程序抄进另一个
每间办公室里最古老、最没被自动化的活:清单在一个程序里,表单在另一个程序里,然后有人坐着重新敲一遍。两边都没有对方能导入的导出功能,所以它们之间唯一的通道,就是人用的那条——屏幕、键盘和剪贴板。
本页把这个流程从头到尾搭出来。这是一个真实流程,30 个节点,能跑到 Success。
目标
从一个文本文件里读出五条客户记录,逐条录入运行在 Chrome 里的一个网页表单,而进入表单这一步前面还挡着验证码。
它演示了:
- 同时握住两个窗口,每个都按别名称呼,而不是"眼下在最前面的那个"
- 一次
Ctrl+C就把整个文件取回成一个流程变量 split()把那一个字符串切成五条记录、每条五个字段- 验证码外面套一层有界重试——三次为止,绝不无限循环
- 点在 Find Image 刚找到的地方,而不是一个固定坐标
前提: 已打开桌面模式,且流程的目标是桌面。
它长什么样
三个变量,都是流程作用域:
| 变量 | 类型 | 默认 | 存什么 |
|---|---|---|---|
vars.noidung | string | "" | 整个数据文件,就是复制下来的样子 |
vars.i | number | 0 | 循环走到第几条记录 |
vars.j | number | 0 | 验证码试到第几次 |
第 1 步 — 打开两个程序,并给它们起名
两个 Open App 节点。要紧的不是它们能启动什么,而是每一个都以一个名字占住一个窗口,供流程其余部分使用。
| 表单 | 数据文件 | |
|---|---|---|
| 程序 | chrome.exe | notepad.exe |
| 参数 | --app=http://…/form.html、--window-size=1000,760、--window-position=880,60、一个私有的 --user-data-dir | …\khach_hang.txt |
| Execution Context | Specific Window | Specific Window |
| 标题包含 | QLBH | khach_hang |
| 别名 | qlbh | nguon |
| Wait after | 1200 ms | 1200 ms |
请用 Browse… 去挑程序,而不是手敲路径。它接受 .exe、接受 .bat,而且——很实用——接受 .lnk,所以桌面上现成的浏览器快捷方式就是个合法答案。
给 Chrome 一个自己的 profile
--user-data-dir 指向一个私有位置,才是这件事可重复的原因。没有它,Chrome 会把 URL 交给你已经开着的那个窗口,于是流程连你的标签页、你的登录会话、你的通知弹窗一起继承过来。有了它,流程每次都拿到一个干净窗口,而你自己的浏览毫发无损。
别名是整个设计的要点。 后面每个节点都在自己的 Execution Context 里点名 qlbh 或 nguon,所以无论流程运行期间用户点了什么,"敲这个"和"复制那个"都落在正确的程序里。这个流程里没有任何一个节点作用于"当前活动窗口"。