上一篇:【效率封神】AutoHotkey (AHK) 全方位指南:从 10 分钟入门到打造「私人指挥部」
上一篇把 AHK 热键、Window Spy、多级菜单和
#HotIf讲清楚了。这篇介绍我基于 AHK v2 做的快捷管家:按下Alt + Z弹出分类菜单,用来打开文件夹、程序和文件。日常增删改走菜单,不必先改脚本。
0. 为什么还要再做一个工具?
上一篇的示例菜单是「写死」的:每加一个路径,就要改脚本、重启。用了一段时间会遇到三个问题:
| 痛点 | 写死菜单时的情况 | 快捷管家的做法 |
|---|---|---|
| 资源越来越多 | 分类和热键都记不住 | 一个入口,按分类排成最多 4 列 |
| 路径经常变 | 每次改.ahk | 菜单里新增 / 编辑,写入Data\Items.ini |
| 想给别人用 | 配置和个人目录绑在一起 | 种子配置用系统变量,运行数据与脚本分离 |
目标不是再做一个 Launchy,而是:热键只负责呼出,菜单负责分类,INI 负责持久化,脚本负责扩展。
1. 这是什么
快捷管家是 Windows 上的个人资源启动器,基于 AutoHotkey v2。
它做三件事:
- 用系统原生菜单打开文件夹、程序、文件
- 在菜单里完成新增、编辑、删除、收藏
- 把「最近使用」和资源列表存到
Data\,脚本本身尽量保持稳定
不依赖自定义大窗口,后台占用很小,适合当开机自启的「指挥部」。
2. 功能一览
2.1 快速菜单
| 入口 | 作用 |
|---|---|
Alt + Z或Alt + Shift + Z | 打开快速菜单 |
| 托盘图标 | 「快速菜单」同上;也可进「管理」 |
| 双击托盘 | 默认打开快速菜单 |
菜单顶部固定四项:管理、收藏、最近、Script。下面是按分类排列的资源,每个分类先显示一行粗体分类名:,其下是资源名。
| 标记 | 含义 |
|---|---|
* | 已加入收藏 |
[缺失] | 当前路径不存在 |
点资源名即打开。分类标题不可点,编辑和删除请走管理。
2.2 打开规则
| 类型 | 行为 |
|---|---|
| 文件夹 | 用资源管理器打开该目录 |
| 程序 | 运行该路径(应指向.exe/.bat等) |
| 文件 | 用系统默认应用打开 |
补充:
- 路径不存在会弹窗,不会写入「最近」
- 同一路径可以对应多条资源(例如「工作文档」和「文档备份」)
- 若类型选了「程序」但路径仍是目录,打开会进文件夹;要启动软件,把路径改成实际
.exe
2.3 管理、收藏、最近
| 你想做的事 | 操作 |
|---|---|
| 打开 | 点分类下的资源名 |
| 在资源管理器中显示 | 管理→ 资源管理器 |
| 复制路径 | 管理→ 复制路径 |
| 新增 | 管理→ 新增资源 |
| 改名称 / 分类 / 路径 / 类型 | 管理→ 编辑资源 |
| 删除 | 管理→ 删除资源(会确认) |
| 收藏 / 取消收藏 | 新增或编辑时勾选,或管理→ 加入或取消收藏 |
打开成功后记入「最近」,最多 10 条,存的是资源id(改路径或重复路径时不会串项)。清空:Script → 清空 Recent。
2.4 Script 与全局热键
Alt + Z→Script:
| 项 | 作用 |
|---|---|
| 编辑主程序 | 打开快捷管家.ahk |
| 编辑配置文件 | 打开HubConfig.ahk |
| 清空 Recent | 清空最近列表 |
| 从 HubConfig 重新导入 | 用种子列表覆盖Items.ini |
| 重启脚本 | 重新加载主程序 |
脚本在后台时,另有几组与菜单独立的热键:
| 快捷键 | 功能 |
|---|---|
Ctrl + Alt + 2 | 发送Win + 2(切换任务栏第 2 个钉选应用) |
Ctrl + Alt + T | 管理员任务管理器 |
Ctrl + Alt + S | 管理员 CMD |
按名称打开资源、随脚本拉起其它程序,见第 6 节。
3. 文件结构与数据流
快捷管家/ ├─ 快捷管家.ahk 主程序:菜单、热键、打开、增删改 ├─ HubConfig.ahk 种子列表,仅首次或「重新导入」时写入 Items.ini ├─ README.md 使用说明 └─ Data/ ├─ Items.ini 当前真正生效的资源列表 ├─ Items.ini.bak 上次成功保存的备份 ├─ Recent.ini 最近打开过的资源 id ├─ Recent.ini.bak 最近列表的备份(若有) └─ Ui.ini 旧版窗口尺寸残留,当前菜单版不读取要点:有Items.ini之后,只改HubConfig.ahk不会出现在菜单里,除非执行Script → 从 HubConfig 重新导入。重新导入会覆盖后来在菜单里做的修改。
Items.ini每条字段:Id、Name、Category、Path、Favorite、Kind(folder/app/file)。保存时先写临时文件再替换,避免写到一半把列表写空。
4. 安装与第一次运行
4.1 环境
- 安装 AutoHotkey v2(不要用 v1)
- 把整个文件夹放到一个固定位置,例如
D:\Tools\快捷管家 - 双击
快捷管家.ahk
不要频繁移动目录:运行数据都在Data\下,路径是相对脚本目录的。
4.2 首次导入
如果Data\Items.ini还不存在,脚本会读取HubConfig.ahk里的ALL_ITEMS,生成初始列表。仓库自带的种子是通用示例,换电脑也能跑:
ALL_ITEMS := [ ["文档", "常用目录", A_MyDocuments, true], ["桌面", "常用目录", A_Desktop, true], ["本工具目录", "常用目录", A_ScriptDir, false], ["记事本", "常用程序", A_WinDir "\notepad.exe", true], ["计算器", "常用程序", A_WinDir "\System32\calc.exe", false] ]4.3 开机自启
与上一篇相同:Win + R→ 输入shell:startup→ 把快捷管家.ahk的快捷方式放进去。
脚本含中文时,保存编码用UTF-8 with BOM。
建议以普通权限运行。若要操作受保护的系统窗口,再考虑提权;不必默认管理员。
5. 日常怎么用
推荐顺序:先用菜单加自己的资源,不要一上来改HubConfig.ahk。
5.1 新增一条资源
Alt + Z→管理→新增资源- 填写名称、分类、路径、类型;高频条目勾选「加入收藏」
- 路径用「文件夹…」「文件…」选择,类型会自动判断,也可手改
- 分类可从已有列表选,也可输入新分类名(会变成新的一列)
5.2 收藏与最近
- 收藏:菜单顶部单独一项,适合每天都要进的目录或软件
- 最近:打开成功才记;最多 10 条,按 id 去重
5.3 托盘
托盘提示名为「快捷管家」。右键可打开快速菜单、管理、重启、退出。脚本挂了或改完主程序后,用「重启脚本」,或退出后再双击启动。
6. 如何扩展
扩展分三层:改种子列表、加热键、改主程序行为。
6.1 批量改种子列表
适合「换电脑后一次性灌入常用目录」,或自己维护一份可版本管理的清单。
HubConfig.ahk每一项格式:
["名称", "分类", "路径", 是否收藏],| 字段 | 含义 |
|---|---|
| 名称 | 菜单上显示的文字 |
| 分类 | 列分组;新分类名会变成新的一列 |
| 路径 | 文件夹 / 程序 / 文件 |
| 是否收藏 | true/false |
示例:把项目目录和工作软件加进去。
ALL_ITEMS := [ ["文档", "常用目录", A_MyDocuments, true], ["工作仓库", "开发", "D:\Work\repo", true], ["对比工具", "常用程序", "C:\Program Files\Scooter Software\Beyond Compare 4\BCompare.exe", false] ]改完后必须:Script → 从 HubConfig 重新导入。这一步会丢弃Items.ini里后来在菜单中做的修改,执行前看清提示。
日常零星增删,继续用管理即可,不必改种子文件。
6.2 按名称绑定热键
主程序提供OpenHubItemByName("名称")。名称必须与菜单条目一致;改路径后热键仍然有效,因为查找走的是名称,打开走的是该条当前路径。
在快捷管家.ahk末尾取消注释或自行添加:
^!d::OpenHubItemByName("文档") ; Ctrl + Alt + D 打开「文档」改完后Script → 重启脚本。
这比写死Run "D:\xxx"更稳:搬家或改路径时,只改菜单里的那一条。
6.3 启动时拉起其它程序
StartBackgroundServices()在脚本启动时执行一次。把「希望常驻、但不必每次手动开」的程序放这里:
StartBackgroundServices() { AppPath := "C:\Path\To\SomeApp.exe" if !ProcessExist("SomeApp.exe") && FileExist(AppPath) Run(AppPath, , "Hide") }6.4 改菜单列数或热键入口
呼出菜单的热键在文件前部:
!z::ShowQuickMenu() !+z::ShowQuickMenu()分类列数由AddColumnGroups(..., 4)的最后一个数字控制。资源特别多时,可改成5或6;改完重启脚本。
6.5 给「打开」加自己的规则
OpenResource()当前逻辑:
若要「打开目录前先切到已有窗口」,可在OpenResource()里对kind = "folder"加WinExist/WinActivate判断,思路与上一篇「有就切过去,没有才打开」相同。
6.6 扩展时建议动哪里
| 需求 | 改哪里 | 是否要重启 |
|---|---|---|
| 加一条日常资源 | 管理 → 新增资源 | 否 |
| 批量重置整份列表 | HubConfig.ahk+ 重新导入 | 导入即可 |
| 加全局热键 / 开机拉起程序 | 快捷管家.ahk末尾 | 是 |
| 改菜单列数、呼出键 | 快捷管家.ahk | 是 |
| 改打开方式 | OpenResource() | 是 |
不要手改Data\Items.ini和Data\Recent.ini。菜单和 Script 已经覆盖增删改、备份和清空。
7. 备份、搬家与排错
- 正常保存会更新
Data\Items.ini.bak - 搬家:整份文件夹连同
Data\一起复制;资源路径按本机磁盘,换电脑后用管理 → 编辑改路径 Items.ini损坏:先试.bak;或从 HubConfig 重新导入(会丢掉之后在菜单里的修改)- 菜单出现
[缺失]:路径变了或盘符变了,走管理 → 编辑即可 - 改了
HubConfig.ahk菜单没变:还没「重新导入」,或导入时点了否
8. 和上一篇的对应关系
上一篇讲的是 AHK 能力;这篇是把这些能力收成一个可维护的小工具。
| 上一篇概念 | 在快捷管家里的落点 |
|---|---|
Alt + Z多级菜单 | 快速菜单 + 分类列 |
Run打开路径 | OpenResource()按类型打开 |
| 「有窗口则激活」 | 可自行扩到OpenResource() |
| 热字符串 / 热键 | 全局热键 +OpenHubItemByName |
| 配置与脚本混在一起 | HubConfig.ahk种子 +Items.ini运行时数据 |
上一篇那句仍然适用:如果一个动作每天要做 10 次以上,就应该把它自动化。快捷管家只是把「自动化」从散落的热键,收成一张能分类、能收藏、能扩展的菜单。
9. 结语
快捷管家的用法可以压成三句话:
Alt + Z打开,点名称即打开资源- 日常增删改走管理,不要手改 INI
- 要扩展:种子列表用
HubConfig.ahk,热键和启动逻辑写在主程序末尾
把文件夹放到固定位置,加进开机启动,再把自己真正每天都进的目录填进去,它就会从「示例菜单」变成你的指挥部。
点击下载
#AutoHotkey #Windows效率 #自动化脚本 #程序员工具 #生产力提升 #快捷管家