如何在 Windows 上无需编程自动录入数据
手动录一遍,让它在窗口移动后依然可用,然后在你做别的事时让它反复运行。
更新于 2026 年 9 月 18 日 · 在 Myna Recorder 中,录制、编辑、回放和图像锚点免费使用,没有时间限制。
1. 要做的事
模式总是一样的:一个值放在一个地方,一张表单需要它出现在另一个地方,而这样的值有两百个。复制发票号,粘贴到搜索框,按 Enter,点击“批准”,等待绿色对勾出现,下一个。自动化这件事不需要编程。你需要的是一个录制工具、一种点击具体东西而不是点击像素的方法,以及一种重复的方法。
2. 录制一遍
关闭鼠标移动录制
设置 → 录制。不录制移动时,宏就是一小串点击和按键,直接落到每个目标上。只有在绘图或需要鼠标悬停时才录制移动。
按 F2,手动处理一项,再按 F3
录制是全局的,所以它会记录你在任何程序里的操作,并保留原本的节奏。
按 F4 回放,按 F6 停止
先记住停止键,再做别的。即使 Recorder 不是当前活动窗口,它也有效。
结果会出现在两个地方:一个是可以调整顺序和时间的步骤列表,另一个是“脚本”选项卡中可读的脚本。
3. 让它不怕窗口移动
录制下来的点击是一个绝对的屏幕位置。移动窗口、改变分辨率,或者在同事的电脑上运行,它就会点到错误的地方。解决办法是图像锚点:在“图片”选项卡里,把“批准”按钮截成一张裁剪图并命名。然后这一步就变成:
with section("One invoice"):
click_crop("Search box")
type_text("${number}")
press("enter")
wait_for("Result row", timeout_ms=10000, abort=True)
click_crop("Approve")
wait_for("Green tick", timeout_ms=10000, abort=True)
wait_for 会一直等到图像出现,所以宏不再是在赌应用程序今天响应得有多快。裁剪图要截得紧凑:只截有辨识度的部分,别的都不要。手册介绍了置信度、区域,以及按颜色还是按形状匹配。
4. 给它提供数据
Recorder 从屏幕上读取数值,而不是从文件中读取。把 read_text 指向存放下一个值的单元格或字段,存进一个变量,然后在你输入的任何文字中使用 ${name}:
number = read_text(region=(120, 300, 160, 28), single_line=True)
click_crop("Search box")
type_text("${number}")
一定要给 read_text 指定一个区域。内置读取器在你的电脑上运行,不花一分钱;如果它读错了文字,还有第二个本地读取器和一个 AI 读取器可用。数字可以用 .to_number() 清理后再比较。完整内容见读取屏幕上的文字。
5. 让它重复
- 工具栏中的重复会按设定次数运行宏;0 表示一直运行,直到你停止它。
- 如果要在一次运行中循环,请使用循环块。编辑器旁边的命令列表为每一种都给出了完整示例。
- 速度会把录制下来的等待时间按 0.25× 到 10× 缩放。它无法让应用程序响应得更快,所以如果宏在 4× 时出错,解决办法是 wait_for,而不是放慢运行。
- 像手动操作一样移到下一项:在列表里按向下键,或者点击下一行的裁剪图。
6. 发现问题
abort=True 用在 wait_for 上时,如果图像始终没有出现,就会停止运行,而不会在错误的记录上按下“批准”。on_fail="again" 会跳转到带标签的步骤重试。对于每天早上出现一次的那个对话框,可以添加一条监视行:它在整个运行过程中查找错误图像,可以弹窗、通过 Telegram 或 Discord 给你发送带屏幕截图的消息,或者停止宏。监视行属于 Basic 套餐。
7. 或者描述出来,让 AI 来写
在 Pro 套餐中,助手可以根据描述编写脚本。先截好裁剪图,然后描述屏幕上是什么样子,而不只是说目标:“点击搜索框,输入编号,按 Enter,等待结果行出现,点击‘批准’,等待绿色对勾”能得到一个可用的宏;“处理这些发票”只会换来一个问题。在你点击“使用此脚本”之前,什么都不会进入编辑器,而且每条回复都会先经过编译器检查。