☰
AutoHotkey 多脚本启动器:一键脚本切换与状态监控,告别十几个手动双击
2026/11/4 2:20:41 网站建设 项目流程

AutoHotkey 多脚本启动器:一键脚本切换与状态监控,告别十几个手动双击

【免费下载链接】AutoHotkeyAutoHotkey - macro-creation and automation-oriented scripting utility for Windows.项目地址: https://gitcode.com/gh_mirrors/au/AutoHotkey

按 Ctrl+F1,打开通窗管理、文本展开、Git 快捷方式等一批脚本;再按 Ctrl+F2,它们全部干净收工,桌面瞬间安静下来。这是本文想帮你实现的效果:做一个 AutoHotkey 脚本启动器,把多脚本管理、一键切换脚本和状态可视化收进一个托盘图标里。

为什么脚本需要一个"总开关"

当你的 .ahk 脚本攒到几十个,逐个双击启动已经不现实。任务栏图标挤成一团,哪些真在运行、哪些早已退出,谁也说不清;想换个工作场景,还得逐个找、逐个关。缺的不是更多脚本,而是一个统一接管启动、关闭与状态显示的入口——这就是多脚本管理要解决的问题,答案是一个启动器。

🔀 三大核心机制:菜单、存活探测、心跳

托盘菜单:把几十个脚本收进一个看得见的位置

它先解决"看得见的入口"问题:几十个脚本总得有个地方统一控制。AutoHotkey 给托盘图标挂一份菜单,每个脚本就是一个菜单项,打勾表示正在运行。源码里托盘菜单的构建与维护集中在 托盘菜单实现,脚本层面只需 Menu 命令往这份菜单上动态加项。

进程存活探测:让每个脚本自己"报数"

它解决"状态是否真实"的问题:菜单上的勾可能骗人,脚本也许已经崩溃或被手动关掉。Process, Exist传入进程名即可拿到 PID,返回 0 说明进程不在了;同族的Process, Close还能按 PID 结束进程。这一对"查一次、关一次"的原语实现在 进程控制 API,是整套 AHK 脚本状态监控的地基。

热键与定时器:一个快捷键加一次心跳

它解决"操作成本"问题:切换场景不该伸手去够鼠标,状态对账也不能靠人工点。热键经由 热键钩子 注册的低层键盘钩子,在任何窗口里都能按下;定时器由 SetTimer API 驱动(定时器实现),保证每秒准时醒来干一次杂活。

🧰 三层搭建启动器:配置、点击、接管

整个启动器分三层:配置层管"管什么",交互层管"怎么看到",调度层管"怎么控制"。自下而上写,每一层都能独立跑通。

配置层:用 INI 给脚本分组

把所有脚本路径放进启动器同目录的 scripts.ini,每个工作场景一个节。以后加脚本就是 INI 里多一行,代码一行不用动;读取由 IniRead 完成,实现在 IniRead 实现。

; scripts.ini:一个场景一个节,键名即菜单显示名 [办公] 窗口管理 = D:\AHK\WindowManager.ahk 文本展开 = D:\AHK\TextExpander.ahk [开发] vscode助手 = D:\AHK\VSCodeHelper.ahk git命令 = D:\AHK\GitCommands.ahk

交互层:让托盘菜单记住每个脚本的存活状态

启动时遍历 INI 的分组和脚本,逐条生成托盘菜单项;右键托盘图标弹出菜单。所有项都指向同一个 ToggleScript 子程序,状态只靠勾选表达——托盘菜单管理的完整逻辑就是下面这十几行。

#Persistent ; 让启动器常驻 Loop, Parse, Groups, `n ; Groups:从 INI 读出的分组名列表 { g := A_LoopField Menu, Tray, Add, %g%, GroupMenu ; 分组名做成菜单项 Menu, Tray, Add ; 分隔线 } Menu, Tray, Default, 退出 Menu, Tray, Click, 2 ; 右键弹出菜单 return

调度层:一键切换脚本,心跳对账状态

菜单项只是开关,真正的动作在这段子程序里:先探测,再决定启动还是终止。启动时把 PID 记进映射表,配合SetTimer, SyncState, 1000这条心跳,每秒扫一遍——发现进程没了就取消勾选并清除记录,状态永不失真。

ToggleScript: path := GetPath(A_ThisMenuItem) ; 由菜单项反查脚本路径 Process, Exist, %path% if (ErrorLevel) { Process, Close, %ErrorLevel% ; 在运行:按 PID 终止 Menu, Tray, Modify, %A_ThisMenuItem%, Checked, 0 } else { Run, %path%,,, pid ; 未运行:启动并记录 PID PIDs[path] := pid } return

⚡ 三个省时间的进阶玩法

一键场景切换:给两个场景各绑一个组合键,先整组停止、再启动目标分组。

^f1:: ; Ctrl+F1:切入"办公"场景 SwitchGroup("办公") return ^f2:: ; Ctrl+F2:切入"开发"场景 SwitchGroup("开发") return

按下即完成整套脚本场景切换,工作时连鼠标都不用碰。

状态自愈:心跳发现某脚本意外退出时,按 INI 配置自动把它拉起来并重新打勾。白天崩掉一个脚本,整套配置会悄悄恢复,你只在下次打开菜单时才会注意到。

开机自启:把启动器放进开机启动项,登录系统时按上次保存的场景恢复整套脚本。坐到工位时一切已就位,早晨"逐个打开"的仪式从此消失。

先按 .ahk 形式跑一周,把分组调顺,再考虑编译成独立 EXE 放进启动项。建议从"工作、个人"两组起步,用顺手了再拆第三组——启动器跟着你的脚本一起生长,多脚本管理才真正变成日常习惯。

【免费下载链接】AutoHotkeyAutoHotkey - macro-creation and automation-oriented scripting utility for Windows.项目地址: https://gitcode.com/gh_mirrors/au/AutoHotkey

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询