AI 写出来的 AHK 代码,不应该直接复制运行后就算完成。更稳的做法是把它当成一份待验收的脚本,从热键、权限、路径、等待、异常处理几个角度逐项检查。
这篇文章给你一套简单的验收顺序。以后不管 AI 写的是复制粘贴、窗口控制、文件处理,还是办公自动化,都可以先按这套清单过一遍。
一、先确认版本和入口
第一步不是看功能,而是看脚本能不能按 AHK v1 正常解释。本站内容以 AHK v1 为主,所以 AI 代码最好明确写 v1,并包含基本入口设置。
#Requires AutoHotkey v1.1
#NoEnv
#SingleInstance Force
SetWorkingDir, %A_ScriptDir%
^!t::
Gosub, DoTask
return
DoTask:
MsgBox, 开始执行任务
return
看到 AI 代码里有 MsgBox("text")、Send "abc"、HotIf 这类 v2 风格时,就要警惕版本混写。
二、验收热键:是否会误触发
热键要看三点:是否冲突、是否限制窗口、是否有 return。如果脚本只应该在某个软件里生效,就不要写成全局热键。
#IfWinActive ahk_exe notepad.exe
^j::
SendInput, AHK66
return
#IfWinActive
验收时可以问自己:这个热键在微信、浏览器、游戏、编辑器里按到会不会出事?如果会,就应该加条件热键。
三、验收权限:目标窗口是不是更高权限
如果目标程序是管理员运行,而 AHK 脚本不是管理员运行,点击、发送按键、控件操作都可能失败。AI 很少主动判断这一点,所以要人工检查。
if !A_IsAdmin
{
MsgBox, 当前脚本不是管理员权限。若目标窗口是管理员程序,可能操作失败。
}
不要一看到 Send 失效就改成更多延迟。先确认窗口权限、焦点、输入法和目标控件状态。
四、验收路径:不要写死电脑目录
AI 生成代码时,常会把文件路径写死。只要脚本换目录、换电脑、换用户名,就会失效。能跟脚本放一起的文件,优先用 A_ScriptDir。
configFile := A_ScriptDir "\config.ini"
if !FileExist(configFile)
{
MsgBox, 缺少配置文件:%configFile%
return
}
IniRead, userName, %configFile%, User, Name,
验收路径时,要重点检查文件是否存在、目录是否可写、计划任务运行时工作目录是否变化。
五、验收等待:不要只依赖 Sleep
一个稳定脚本应该等待“条件”,而不是只等待“时间”。窗口自动化尤其如此。
Run, notepad.exe
WinWait, ahk_exe notepad.exe,, 3
if ErrorLevel
{
MsgBox, 启动失败或窗口未出现
return
}
WinActivate, ahk_exe notepad.exe
WinWaitActive, ahk_exe notepad.exe,, 2
if ErrorLevel
{
MsgBox, 窗口没有激活
return
}
AI 代码里如果连续出现很多 Sleep,就要检查是否能改成 WinWait、WinWaitActive、ClipWait 或控件状态判断。
六、验收异常处理:失败时能不能停下来
最危险的脚本不是报错的脚本,而是失败后还继续执行的脚本。比如没找到窗口却继续发送按键,没读到配置却继续写文件。
CopySelectedText(timeout := 1) {
ClipSaved := ClipboardAll
Clipboard := ""
SendInput, ^c
ClipWait, %timeout%
if ErrorLevel
{
Clipboard := ClipSaved
ClipSaved := ""
return ""
}
text := Clipboard
Clipboard := ClipSaved
ClipSaved := ""
return text
}
验收函数时,要看它失败时返回什么、调用方有没有判断、有没有恢复现场。剪贴板、窗口焦点、临时文件尤其要注意。
七、一份实用验收清单
- 版本:是否明确 AHK v1.1,是否混入 v2 语法。
- 热键:是否有 return,是否需要条件限制。
- 权限:目标程序是否管理员运行,脚本权限是否匹配。
- 路径:是否使用 A_ScriptDir,是否检查文件存在。
- 等待:是否用 WinWait、WinWaitActive、ClipWait 替代盲目 Sleep。
- 异常:失败后是否 return,是否有提示,是否恢复剪贴板和状态。
AI 生成代码能省时间,但验收不能省。你越会验收,AI 对你的帮助越大;你完全不验收,AI 反而会把问题藏得更深。

评论(0)