这篇根据“窗口类名修改”和“编译 exe 文件信息及版本号设置”两个实测示例整理。它不讲复杂业务代码,只讲 H 版脚本在打包发布前容易忽略的两个细节:窗口类名要清楚,exe 版本信息要完整。相关指令可参考 #WindowClassMain#WindowClassGuiAHK_H 帮助文档

先把类名定下来

AHK 脚本有隐藏主窗口,GUI 也有自己的窗口类名。H 版可以用 #WindowClassMain#WindowClassGui 改掉默认类名。更推荐使用自己的工具名,不要模仿系统窗口或浏览器窗口类名。这样后面用 AHKInfo、WinExistahk_class 定位时更清楚。

#Requires AutoHotkey v1.1
#NoEnv
#SingleInstance Force

#WindowClassMain Ahk66ToolMain
#WindowClassGui Ahk66ToolGui

Gui, Add, Text,, 用 AHKInfo 查看这个 GUI 的 ahk_class
Gui, Show, w300 h90, AHK66 H版测试窗口
Return

GuiClose:
ExitApp

如果你平时用窗口标题、类名、进程名排查窗口,建议顺手使用站内 AHKEditor 附带的 AHKInfo 工具查看。类名一旦固定,脚本之间互相识别会稳定很多。

再写完整版本信息

很多 AHK 工具编译后还是默认图标、默认描述、默认产品名。自己用问题不大,一旦发给别人,版本号和文件说明就很重要。Ahk2Exe 支持在脚本注释里写编译指令,把图标、产品名、文件版本、公司名等信息一起带进去。

CurrentToolVersion := "1.2.0"

;@Ahk2Exe-Obey U_bits, = "%A_PtrSize%>4" ? "-64bit" : "-32bit"
;@Ahk2Exe-Let U_version = %A_PriorLine~U)^(.+"){1}(.+)".*$~$2%

;@Ahk2Exe-SetMainIcon Icon\tool.ico
;@Ahk2Exe-ExeName %A_ScriptDir%\Build\MyTool_%U_version%.exe

;@Ahk2Exe-SetCompanyName AHK66
;@Ahk2Exe-SetCopyright AHK66
;@Ahk2Exe-SetDescription AHK_H 示例工具
;@Ahk2Exe-SetFileVersion %U_version%
;@Ahk2Exe-SetProductVersion %U_version%
;@Ahk2Exe-SetProductName AHK_H 示例工具
;@Ahk2Exe-SetOrigFilename MyTool.exe

发布前检查清单

  • 图标路径是否存在,例如 Icon\tool.ico
  • 输出目录是否存在,例如 Build 文件夹。
  • 版本号是否只改了一处,避免文件名、产品版本、文件版本不一致。
  • 窗口类名是否使用自己的命名,避免和常见系统窗口、浏览器窗口混在一起。
  • 如果你额外改了脚本隐藏主窗口标题或实例识别方式,要重新测试 #SingleInstance Force 的行为。

我的建议

类名和版本信息不是为了“装饰”,而是为了后期维护。别人拿到 exe,能从属性里看到版本;你自己调试窗口,能用 AHKInfo 一眼认出类名。工具越准备发给别人用,越应该把这些发布信息补齐。

声明:站内资源为整理优化好的代码上传分享与学习研究,如果是开源代码基本都会标明出处,方便大家扩展学习路径。请不要恶意搬运,破坏站长辛苦整理维护的劳动成果。本站为爱好者分享站点,所有内容不作为商业行为。如若本站上传内容侵犯了原著者的合法权益,请联系我们进行删除下架。