Pulover's Macro Creator 5.4.1 全景解析:项目概况、版本演进与自动化能力全梳理
Pulover's Macro Creator 5.4.1 全景解析:项目概况、版本演进与自动化能力全梳理
Pulover's Macro Creator 是一款基于 AutoHotkey 语言的开源自动化工具与脚本生成器,集键盘/鼠标录制、宏编辑、回放与 AHK 脚本导出于一体。本文以官方 About 文档(Documentation/About.md)为主体,结合仓库源码与配套文档(Documentation/Main.md、Documentation/Record.md、Documentation/Playback.md、Documentation/Export.md),系统讲解项目身份信息、技术构成、核心功能与完整的版本演进历史,帮助读者从项目概况与功能脉络两个层面完整掌握这一自动化工具。
项目身份与基本事实
Pulover's Macro Creator 在官方文档中的定位是"The Complete Automation Tool",即一款完整的自动化工具。根据 About 文档的官方声明:
- 作者:Pulover(Rodolfo U. Batista)
- 版权:Copyright © 2012-2021 Cloversoft Serviços de Informática Ltda
- 当前版本:5.4.1
- 发布日期:2021 年 9 月(September, 2021)
- AutoHotkey 版本:1.1.33.09
- 软件许可:GNU General Public License(GPL)
上述版本信息与仓库源码完全一致,MacroCreator.ahk 第 8 行注释声明了 Version: 5.4.1,第 147 行也写明了运行时的版本常量:
CurrentVersion := "5.4.1", ReleaseDate := "September, 2021"
该程序的核心定位由 README.md 给出:它是一款免费自动化工具与脚本生成器,提供大量自动化命令,内置录制器(recorder),可在其界面中捕获输入;宏既可以在程序内直接执行,也可以导出为 AutoHotkey 脚本(.ahk)格式。支持的平台为 Windows 7、8、8.1、10(官方注明未在 Windows XP、Vista 上测试)。
仓库结构与技术构成
从仓库根目录可以看到该项目的主要构成模块:
- 主程序:MacroCreator.ahk(约 1.7 万行,是唯一的入口脚本,负责界面、命令行参数解析与全局逻辑)
- 核心库(LIB/):录制(LIB/Recording.ahk)、回放(LIB/Playback.ahk)、导出(LIB/Export.ahk)、内部逻辑(LIB/Internal.ahk)、命令定义(LIB/Definitions.ahk)等模块化实现
- 帮助文档:Documentation/ 下存放主窗口、录制、回放、导出、设置、函数等主题的 Markdown 文档
- 多语言资源:Lang/ 目录包含约 50 种语言的
.lang文件(含zh_CN.lang、zh_TW.lang简体/繁体中文) - 第三方二进制:
SciLexer-x64.dll/SciLexer-x86.dll(Scintilla 编辑器组件)、Bin/tesseract/(OCR 引擎)、Bin/leptonica_util/(OCR 依赖库)
从源码结构看,项目采用"单一入口 + 功能库拆分"的 AutoHotkey 经典组织方式,录制、回放、导出三个核心生命周期分别由独立模块承担,便于维护与扩展。
核心自动化能力总览
结合配套功能文档,About 所定义的项目能力集中体现在三条主线上:
录制(Record)
通过 Documentation/Record.md,录制能力覆盖键盘按键(Keystrokes)、按键按下/释放状态(Down/Up)、鼠标点击、鼠标滚轮、鼠标移动、ControlSend/ControlClick、相对录制(Relative Record Key)、时间间隔录制(Timed Intervals)、窗口类与窗口标题录制等选项。默认的录制热键为 F9(Start/Stop Record),F10 可新建宏标签页继续录制。录制选项集中在 Options > Settings > Recording 中配置。
回放(Playback)
Documentation/Playback.md 说明回放由 Play 热键触发,支持逐条手动执行(Manual,用于调试)、Stop/Pause 热键、多个宏各自独立的自动/手动热键、上下文相关热键(Context Sensitive Hotkeys,支持 #IfWinActive 与 #If Expression 条件)以及标题匹配模式、隐藏窗口/文本检测、按键发送模式、各类延迟、随机延迟(Random Sleeps)等回放选项。
导出(Export)
Documentation/Export.md 说明宏可导出为可运行的 AutoHotkey 脚本,并可选通过 Ahk2Exe 编译为 EXE 独立可执行文件(要求本机安装最新版 AutoHotkey,Ahk2Exe 需位于其安装目录的 Compiler 子文件夹中)。导出时可配置缩进、注释掉未勾选行、不合并 Send 命令、转换换行符、包含 PMC 代码、自定义 EXE 图标等。
命令行参数
从 Documentation/Main.md 可看到完整参数集,源码 MacroCreator.ahk 中对这些参数有实际解析逻辑(A_Args 遍历):
-p:启动时激活回放热键-a或-aN:AutoPlay,启动时自动运行第 N 个宏-t或-tN:Timer,按 N 毫秒(默认 250ms)间隔重复运行宏,可加!立即执行首次迭代(如-t5000!),并可结合-aN指定宏-c:宏执行后退出程序-h:启动时隐藏主窗口-s或-sN:Silent 静默模式,组合了-a、-h、-c-r:以录制模式启动-b:启动时显示 Controls Toolbar
典型用法如 MacroCreator.exe SavedFile.pmc -a2(启动即执行第二个宏)、MacroCreator.exe File1.pmc File2.pmc File3.pmc -h -p -a3(同时加载多个文件并组合参数)。
版本演进历史全解读
About 文档的主体是自 1.0.1 至 5.4.1 的完整变更日志(Change Log),它记录了项目十余年的功能演进脉络。以下按时间顺序完整梳理,并结合源码补充关键实现细节。
5.4.x:稳定性收尾(最新版)
5.4.1:保存项目收集数据时增加 sleep 以提升可靠性;修复表达式中的转义字符 bug;修复编辑 Loop 命令时 Until 选项未被勾选的问题;修复 Speed Up/Down 菜单中某些选项选择的 bug。
5.4.0:修复导入文件时行缺失或混行问题;Loop 窗口的分隔符省略字符现在会自动添加转义字符。
5.3.x:表达式与嵌套修复
5.3.9:修复 Image/Pixel Search 窗口中 Get-Area 按钮的 bug。
5.3.8:修复命名运算符(named operators)bug;修复启用分组(Groups)时操作的滚动 bug。
5.3.7:修复嵌套 Loop 命令中 A_ 变量不可访问的问题;修复表达式引号相关的 bug。
5.3.6:修复多重比较运算符 bug;修复表达式中变量与字符串的问题;修复插入新分组时其他分组被展开的问题。
5.3.5:更新 Pause (Sleep) 命令的最大值;项目的 EXE 自定义图标路径现在保存到 PMC 文件中;修复对象与对象内字符串的 bug。
5.3.4:修复表达式中字符串被当作数学运算求值的问题。
5.3.3:修复嵌套在其他语句中的 Else If 语句 bug;修复从 Function 窗口调用 Object/Array 方法返回空值的问题。
5.3.2:修复函数返回(Function Return)的 bug。
5.3.1:Mouse 命令窗口新增 Random coordinates(随机坐标) 选项;Export 窗口新增 Custom icon(自定义图标) 选项;修复 If Statements 窗口 Compare variables 与内置变量的比较 bug;修复表达式减法运算 bug;修复函数中作用域变量 bug;修复 ListVars 不显示函数内局部变量、以及 MouseGetPos 的 OutputVars 不显示在 ListVars 中的问题。
5.3.0:修复 If Statements 窗口 Compare variables 的 bug。
5.2.x:OCR 与热键能力扩展
5.2.9:If Statements 窗口的 Compare variables 更新为仅使用符号运算符的表达式;修复分组内重复与粘贴的 bug;修复使用撤销后添加行时历史记录混淆的问题;修复回放中转义百分号(%)被错误转换为变量的问题。
5.2.8:新增 View 菜单 > Preview Script 及预览工具栏中把分组名显示为注释的选项;修复 A_ 变量不能作为命令 InputVar 参数的问题;修复 Expand all groups 失效;修复部分热键不更新 Play 热键的问题;修复表达式减法问题;修复全局上下文条件被设置为宏上下文的问题。
5.2.7:Play 热键支持 &、*、~、Up 修饰符符号;Edit Macros 窗口支持设置 Hotstrings 来执行宏;Image Search 命令窗口支持从图片文件 Image to Text(OCR);修复分组启用时空白的 ListView、重复宏后分组不显示、重复列表后编辑宏内容混淆等问题;修复 WinTitle 中逗号(必须转义)的 bug。
5.2.6:修复导出 EXE 报错;修复热键未激活的问题。
5.2.3:If Statements 窗口导出的 Compare variables 更新为使用表达式;全局上下文热键现在保存在项目文件中而非 ini 文件;修复 Function Return 忽略 if 语句的问题;修复相似数字 Play 热键的 bug;修复表达式与各类 bug。
5.2.1:修复 Image To Text 导出的 OCR() 函数不一致问题;修复命令窗口使用 Apply 按钮时的 bug。
5.2.0:新增 Image to Text(OCR) 功能(位于 Image Search 命令窗口);支持在 Edit Macros 窗口中手动定义任意 Play 热键;Edit 菜单新增 Go to 命令;新增宏列表与预览面板的字体大小设置;修复关闭宏标签页等 bug。OCR 功能对应仓库中的 Bin/tesseract/ 与 Bin/leptonica_util/ 组件。
5.1.x:预览窗口与上下文热键
5.1.3:修复 Capture key presses 功能与按键录制中的 bug。
5.1.2:Preview 窗口新增 Go to selected line 按钮与 Auto-select code 功能;新增逐宏的 Context Sensitive Hotkeys(上下文相关热键);Function 窗口为 RegExMatch、RegExReplace、StrReplace 新增 OutputVar 支持;提升 Text::Paste from Clipboard 性能;修复 INI/REG 命令省略可选参数时不工作、Image Search 中 Adjust coordinates to the center of the image 的 bug;修复重排宏导出顺序错误、关闭宏标签页时崩溃等问题。
5.0.x:大版本功能爆发(User Defined Functions 等)
5.0.5:修复表达式中将变量赋值为三元运算的 bug。
5.0.4:修复编辑命令时 Message Box 选项设置错误的问题。
5.0.3:修复 gosub/goto 之后循环中错误执行行的问题;修复导出 Control/ControlGet 命令缺少 value 字段;修复 GUI 调整大小/最小化/最大化后隐藏的 Main Loop 条重新出现;修复 Copy to... 功能与 Delete 键不能作为热键的问题。
5.0.2:提升启用 Groups 时的性能;更改 Image/Pixel Search 的 Repeat Until 行为以支持最大重复次数;修复表达式内调用用户函数后全局变量被清除、函数局部变量调用后未恢复全局作用域、命令中表达式执行两次、表达式中相同函数/对象调用只执行一次等问题;修复 Send Email、Download Files、Zip/Unzip Files 部分字段不支持变量;修复拖放或 Edit Macros 窗口重排函数标签页后宏列表被清空、热键有时不激活、部分行因线程问题最终未执行、编辑宏列表后折叠分组被展开等问题;布尔赋值现在仅支持 Expression 选项;因崩溃问题将 SciLexer.dll 回退到上一版本。
5.0.1:提升宏列表操作性能;Playback 与 Export 的最大 Speed 提升到 256x;Multi-Edit 窗口的延迟新增 Incremental 选项;修复加载大型项目文件时程序无响应、If string [not] contains 与 A_Loop 变量不兼容、拖放后主窗口右键菜单不显示、保存大宏项目失败、Save as 失效、Target Label not found 错误、Goto/Gosub/Set Timer 不接受强制表达式语法、使用 Indentation 时导出速度设置错误等问题。
5.0.0 是本项目的重要里程碑,新增/改进了大量特性:
- 用户自定义函数(User Defined Functions)、SetTimer 命令、Loop 命令窗口中的 While-Loop、For-Loop、Until 选项
- Send Email、Download Files、Zip / Unzip Files 函数
- Listview Groups(+WinVista),即宏列表分组
- 在 Functions、Methods、Variable Assignment、Evaluate Expression、COM Interface 以及以
%开头的命令参数中实现真正的 AutoHotkey 格式表达式 - Evaluate Expression 支持多重 If 语句(如
var = 5 || var = "a");函数参数可以是另一个函数、数组、数组元素或表达式;新增 Else If 语句;Loops 支持手动回放 - 数组能力全面增强:数组赋值、关联数组赋值、数组方法、多维数组、命名键(如
N["key"]、N.key、MyArray.1 := OtherArray.Name) - Context Sensitive Hotkeys 支持 #If Expression;IE/COM 的 Get Element Tool 新增 GetElementsByClassName 选项
- If Statements 新增
var [not] in、var [not] contains、var [not] between、var is比较选项 - If Window 语句支持 WinTitle、WinText、ExcludeTitle、ExcludeText;新增 TitleMatchMode、DetectHiddenWindows、DetectHiddenText、SendMode、KeyDelay、MouseDelay、ControlDelay 设置
- Mouse 与 Pixel/Image Search 坐标新增 Client 模式;ImageSearch 结果可选居中坐标;Image/Pixel Search 区域与截图工具的矩形颜色可自定义
- Edit Comment 窗口新增 Insert Comment Block;可注释掉 Preview/Exported 脚本中未勾选的行
- 新增语言编辑器(Settings 窗口内,含提交表单);语言文件集中到 Lang 文件夹,可增删改
- Loop, File 与 Loop, Reg 更新为带 Mode 参数的新格式;List Variables 只显示用户自定义变量;备份系统扩展为每次更改都更新备份文件
- 修复退出时损坏的 pmc 文件、热键更改后未自动禁用、鼠标按钮录制、WinWait 超时、IE/COM 接口、命令参数逗号、Schedule Macros、首次运行默认编辑器未正确设置等一系列问题
4.x:界面重构与任务计划
4.1.3:修复宏列表重绘问题与导出时错误的 Invalid address 提示。
4.1.2:Options 菜单新增工具栏项;COM Interface 支持 WinHttp.WinHttpRequest.5.1 对象方法;为缺失的 "End Loop"/"End If" 添加调试消息(需启用高亮);新增 Macro、Play Button 与 Tray Icon 菜单的 Deactivate Macros 命令;除 Send 与 Click 外,命令不再在主窗口激活时停止回放;修复 Pause 按钮、循环内 Gosub、Compare Variables 中的 A_Loop 变量、Functions 中 A_Space 变量、Assign Variable 转义逗号、Image/Pixel Search 中 Get Coordinates 工具在 Window 坐标模式下取值错误、Copy to 未复制 Comment 与 Color 字段等 bug。
4.1.1:首次运行自动检测默认 AHK 编辑器;修复 MacroCreatorPortable.exe 命令行参数失效问题。
4.1.0:新增 Windows Task Scheduler 宏计划工具;命令窗口右键菜单可插入内置变量快捷方式;Run 命令窗口新增 Filter by type 按钮;新增右键拖放 Move/Copy 菜单;Image/Pixel Search 结果操作新增 Play Sound 选项;便携版新增 Launcher(自动更新 INI 并根据 Windows 版本选择 x86/x64)。
4.0.0:全新界面与可自定义工具栏;新增带语法高亮的 Preview 窗口;Find a command 窗口、命令窗口提示、Message 窗口更多选项、Edit Macros 窗口、Drag-Macros 功能;宏标签页单击关闭/编辑菜单、鼠标中键关闭;Image/Pixel Search 新增 Loop until 选项(取代 "Break if found");单独 Pause 热键;Find/Replace 窗口多列搜索;Text 命令窗口 Set key delay 选项;Pause 命令窗口 Random delays 与 Disable random delays 选项;Preview 窗口 Edit Script 按钮;基于内置函数 Array 的数组支持;Assign Variable 窗口 Expression 选项支持函数;自动备份;马来语与越南语翻译;安装器 Portable Install 选项;Paste 支持多选;主窗口大小、位置与列顺序记忆;移除 Run 窗口的 MsgBox 命令等大量变更与修复。
3.x:功能深度扩展期
3.8.4:PixelSearch 中 Color Picker 与 Search 按钮功能互换以更直观;移除 Special Keys 窗口,改为 Insert Keystroke。
3.8.3:新增印尼语、斯洛伐克语、斯洛文尼亚语翻译;便携设置支持(INI 文件复制到安装目录);修复 Text 窗口工具栏按钮、导出无热键宏时的 "Duplicate Keys" 错误提示、Mouse 命令内使用变量时的 "Expressions" 错误提示。
3.8.2:修复 Image/Pixel Search 的 Break 选项对循环不生效、Duplicate Macro 未更新 Loop 计数器、编辑带变量延迟的 Loop 命令时重复值错误等问题。
3.8.1:命令行支持以感叹号立即运行 Timer(如 -t5000!);修复高 DPI 设置问题与 Timer 命令行参数问题。
3.8.0:新增 Insert Keystroke 命令;Timer 的 Run immediately 选项;Options 窗口回放 Random delays 选项;Shift+1 至 0 快捷为选中行着色;修复取消时颜色对话框不保存自定义颜色、重复宏未复制注释与颜色、Run 窗口 InputVar 参数必填化、SplitPath/MouseGetPos 的 OutputVar 可选化等。
3.7.9:工作目录自动设为当前打开文件的路径;修复 Timer 中 Goto 命令失效、窗口最大化启动时控件位置错误。
3.7.8:修复选择宏时控件不显示的问题。
3.7.7:修复 Image/Pixel Search 后全局鼠标坐标错误、非 100% DPI 显示器控件位置错误。
3.7.6:ImageSearch 命令新增更多搜索选项;ImageSearch/PixelSearch 命令新增 Add "If Statement" 选项;行 Color Mark 功能;修复 Timer 内存泄漏。
3.7.5:IE 命令窗口新增 VBScript/JScript 的 Run Scriptlet 命令;Controls Toolbar 右键菜单与空白区域拖动;PMC 文件包含 Shutdown 选项;修复 COM Interface 中 ScriptControl 问题。
3.7.4:主窗口 Shutdown options;导出脚本 Speed Control;改进 Drag-Rows 函数;修复 Goto 循环栈溢出崩溃、Run 窗口命令参数转义逗号显示、热键切换时 Controls Toolbar Play 按钮不切换等。
3.7.3:回放支持 Joystick Hotkeys;启动提示;修复 Break、Continue, LoopNumber 命令、String 命令以 A_Loop 变量为 InputVar、导出 MsgBox 逗号未转义等问题。
3.7.2:Settings 支持定义 User Global Variables;Loop 命令支持无限循环;Break/Continue 支持 Loop Number 参数;回放 COM 错误处理器;COM Interface 参数自引用支持;-b 命令行参数(启动显示 Controls Toolbar);百分号转义支持;修复 Vista 启动错误、64 位版截图失效、WinWait Timeout 参数回放失效、If Statements 问题。
3.7.1:Preview 窗口状态栏显示选中宏热键;修复 XP 启动错误、Windows 8 图标缺失、首次运行 Export Options 默认值错误、未变更项目仍显示保存对话框、回放进度条范围错误、Win 选项时 Auto-Hotkey 加载错误、翻译错误。
3.7.0:新增 Loop 命令变体:FilePattern、Parse、Read、Registry;Image/Pixel Search 新增 Break 与 Break loop if image is found;宏支持无限循环;新增 Controls Toolbar;Record New Macro 的 Clear List 选项;Play Selected Rows 选项;命令窗口 Apply 按钮;Message 命令 Icon、Always On Top、Cancel 选项;Check for updates 功能;命令窗口帮助按钮与 F1;Action 列 Quick Select(双击缩进);安装时可选 64/32 位;新增克罗地亚语、加泰罗尼亚语、希腊语、塞尔维亚语、乌克兰语、繁体中文翻译;修复 Goto 在循环内失效、循环内 A_Index 错误、宏循环计数器与主窗口 Quick-Edit 重复计数器独立等。
3.6.3:鼠标拖动行;截图/搜索区域选中时 Ctrl/Shift+方向键微调(Press Enter to capture 模式);Image/Pixel Search 窗口 Screenshot Options 按钮;File 菜单 Recent Files 子菜单;所有命令的 Repeat/Delay 字段支持变量与函数;关联文件处理改进;修复 IE GetElementByID、后台窗口点击坐标错误、Set as Default Hotkeys 选项、循环内外部函数、表达式与函数语法错误、ListView 重绘问题;设置文件(MacroCreator.ini)移至 AppData;截图默认目录移至 AppData;移除 Mouse 操作的自动逗号转义。
3.6.2:Loop 命令窗口新增 Gosub 命令;Run 命令窗口新增 ExitApp 与 SendLevel 命令;Preview 窗口 Copy 按钮;Export 窗口 Create EXE File 选项(需安装 AutoHotkey);Label 与 Goto/Gosub 可编辑;Loop 命令 Repeat 字段支持变量与函数;所有命令自动转义逗号;恢复主窗口 Windows Messages 按钮;降低内存占用;修复多行添加 If Statements、主窗口 Up 键捕获、多命令编辑等。
3.6.1:新增 Quick Select:选中行后点击列头可选中相似行;修复非英语环境下 Pixel Search 按钮失效、编辑注释问题、热键问题、导出脚本问题与 GUI 问题。
3.6.0:支持从外部文件使用函数(需安装 AutoHotkey);Macro 菜单 Play From 与 Play Until Selected Row 选项;Window 字段支持 WinText、ExcludeTitle、ExcludeText;新增 WinSetTitle 命令;-tN 命令行参数(N 为毫秒时间间隔);Pause Key 可暂停/恢复录制;多命令 Window 编辑影响 Win 命令;修复导出脚本中 WinSet 语法错误、函数语法错误、命令行参数、录制重音、默认 Virtual Keys 等。
3.5.3:主窗口 Action 列缩进选项;Settings 中回放显示进度条选项;Run 命令窗口新增 Env 命令;-c 命令行参数(宏执行后退出);-s 参数(组合 -a、-h、-c);未变更项目不再提示保存;修复编辑已有命令后历史未更新。
3.5.2:-p 参数(启动激活热键);-aN 参数(启动运行第 N 个宏);-h 参数(启动隐藏主窗口);修复列调整大小、录制 Click 命令语法错误。
3.5.1:修复变量失效、Wait for page to load 函数问题与 GUI 小故障。
3.5.0:新增西、德、法、意、俄、波、荷、丹、挪、芬、瑞典、捷、土、匈、保、中、日、韩语 unverified 翻译;IE COM 函数支持经 Navigate 方法调用 JavaScript;Stop、Speed Up、Slow Down 键在 Play Current Macro 时激活。
3.4.2:修复主窗口 Apply 按钮与 Duplicate Rows 函数 bug。
3.4.1:启用 Help Marks 时 Loops 与 Statements 行显示颜色;IE 命令窗口新增目标窗口列表;提升录制器性能。
3.4.0:主窗口 Play Current Macro 按钮(无需热键运行);主窗口 Timer 按钮(按间隔重复运行当前宏);TrayIcon 菜单 Hide/Show Window;Find/Replace 窗口 Regular Expression 选项;COM Interface (Advanced) Connect 按钮行为变更(可选择连接 IE 或 Excel 窗口);IE 命令窗口 Get 按钮可获取元素并返回 COM Interface (Advanced) 脚本;函数列表帮助按钮;修复命令内逗号问题与 Pause/Control 按钮顺序错乱。
3.3.4:If Statements 列表新增 Evaluate Expression(基于 Eval());提升 Duplicate 命令性能;重新整理语言文件。
3.3.3:修复主窗口激活时热键未停用、Comments 列保存与粘贴 bug。
3.3.2:每个宏独立的 Undo/Redo 历史;Find/Replace 与 Multi-Edit 窗口更多选项;行索引显示 Loop/If Statement Help Marks 选项;Record/Playback 热键警告消息;修复关闭宏、循环内 Break 问题。
3.3.1:主窗口 Cut/Copy/Paste 按钮;修复 Manual Key 在 Auto Key 按下后失效、主循环 Break 不工作、嵌套循环 A_Index 返回值错误。
3.3.0:宏行复选框(启用/禁用特定动作);Loop 命令窗口 Labels 与 Goto 命令;新的编辑命令 Copy、Cut、Paste;新 Select 菜单;修复 InputBox 命令停止执行问题。
3.2.6:修复主窗口随机冻结;菜单栏 PayPal 捐赠链接。
3.2.5:COM Interface (Advanced) 支持多行命令(单个 Action 输入一串 COM 命令);修复变量赋值问题。
3.2.4:修复导出脚本解析 COM 命令参数问题。
3.2.3:COM Interface (Advanced) 新增 Connect 按钮(尝试连接活动 COM 对象);修复部分键盘录制 RAlt 键问题。
3.2.2:修复回放中 COM Interface bug;IE 命令窗口 Get Button 改为尝试连接最后一个 IE 窗口而非创建新实例。
3.2.1:IE COM 列表更多属性;修复无索引使用 IE Elements 时错误;其他 bug 修复。
3.2.0:COM Interface 支持任意应用程序的点号语法(IE 命令窗口);不同 DPI 下字体大小避免重叠;变量相关 bug 修复。
3.1.0:新增带 IE COM 自动化命令的 Internet Explorer 命令窗口;变量中百分号包围的词不再被解引用;图标兼容性改进。
3.0.5:Run 命令窗口新增 Pause 与 Set[Caps/Num/Scroll]LockState 命令;修复 Export 窗口编辑热键 bug。
3.0.4:Run 命令窗口新增 Input 与 KeyWait 命令。
3.0.3:修复回放期间保存项目的问题。
3.0.2:修复 Always Active 选项问题;新增中键点击 TrayIcon 暂停执行/录制功能。
3.0.1:修复 Set As Default Hotkeys 选项与 TrayIcon 点击取消暂停问题。
3.0.0:支持多宏与多热键;函数赋值支持;命令参数内函数支持(如 % SubStr(AHK, 2));变量赋值使用 Eval() 支持数学表达式;热键窗口敏感按钮;Keep Hotkeys Active 选项;新标签页开始录制热键;Run 窗口更多命令;Default Hotkeys 保持选项;默认项目文件选项;StopKey 暂停脚本选项;StopKey 不再停用热键;回放速度按钮切换;File 菜单 Import 命令;循环/Break/Continue 修复;可选安装包。
2.x:录制与命令体系成型期
2.5.4:修复退出时设置未保存。
2.5.3:修复部分命令变量失效、DynamicVars 引用、Alt 键录制。
2.5.2:记录/捕获所有键的 Down 与 Up 状态选项(需在选项窗口激活);参数优化以支持变量。
2.5.1:回放支持嵌套循环;回放支持动态变量引用(如 % Var%counter%,字段必须以 "% " 开头且只含一个引用)。
2.5.0:Run 窗口新增命令,含 20 个文件命令;窗口选择支持 ProcessID(ahk_PID);修复导出脚本部分命令参数缺失。
2.4.0:新增 ControlGetPos、Break、Continue 及更多窗口命令;命令窗口快捷键(F2-F12);导出脚本可包含 PMC 代码(打开 ahk 文件导入);Options(Misc. 标签)禁用快捷键选项。
2.3.4:修复录制时按 RButton 会发送左键按下。
2.3.3:修复 Sleep 命令回放速度控制失效。
2.3.2:截图线宽定义选项;鼠标命令问题修复。
2.3.1:Preview 与 Export 缩进选项。
2.3.0:修复并改进鼠标录制;Wait 命令允许回放中止等待;自定义绘制按钮(定义搜索/截图区域);Enter 键截图选项;Control Commands 窗口新增 ControlSetText、ControlGet、ControlGetText、ControlGetFocus;ControlGetText 从 Variables 窗口移至 Control Commands 窗口;Start Record 与 Stop Record 键合并为 Start/Stop Record。
2.2.2:修复 Sleep 命令耗时翻倍问题。
2.2.1:鼠标录制问题修复。
2.2.0:新增 Control Commands 命令窗口(Control、ControlFocus、ControlMove);ControlGetText 加入 If / Variables 窗口;修复 Control, EditPaste 回放错误与空白控件设置 bug。
2.1.5:Text 命令窗口新增 Control, EditPaste 发送选项;修复与改进回放变量转换。
2.1.4:ControlSend/Click 未带控件名时的报错改为警告(允许在窗口标题中使用控件 HWND)。
2.1.3:修复窗口未激活时程序热键被触发、重复热键失效。
2.1.2:修复回放匹配少于 4 字符的变量名问题;移除部分编辑框输入限制以允许变量;Get Control Button 自动获取窗口类。
2.1.1:布尔赋值支持(变量须用百分号括起,如 MyVar := !%MyVar%);变量扩展到 Control 与 Window 列;修复比较内置变量报错;更多快捷键。
2.1.0:ImageSearch 新增 Make Screenshot 按钮;Assign Variables 的 If 按钮可赋值并比较变量;Text 命令用百分号发送变量;Pause 菜单 MsgBox Prompt 用百分号显示变量值;Post/SendMessage 命令窗口允许任意消息号;File 菜单 ListVars 快捷键;修复搜索区域激活错误窗口、控件命令目标窗口后最后一个窗口未激活、MsgBox Prompt 无换行。
2.0.5:修复 Image/Pixel search 语法问题。
2.0.4:GUI 小改动。
2.0.3:图形按钮函数支持 AHK_L 64 位;Export 窗口上下文帮助新增 Auto-execute Section。
2.0.2:ControlClick 新增 NoActivate(NA)选项;修复导出脚本 PostMessage/SendMessage 语法错误。
2.0.1:问题修复。
2.0.0:新增 SearchImage 与 SearchPixel 命令;部分 If Statements 命令;SendMessage 与 PostMessage 命令;Pause 中 KeyWait 选项;Export 菜单 Window-Sensitive Hotkey 选项;Text 命令 Clipboard Send(移除 Script 选项);回放后将鼠标恢复到初始位置选项;上下文菜单帮助(右键按钮或窗口显示 AHK 在线帮助链接);ControlClick 支持窗口内位置;提升鼠标与按键录制可靠性;Loop 支持回放(嵌套循环暂不支持);Control 录制可记录窗口标题与类;修复 CPU 占用过高、Up 键未录制等问题。
1.x:产品奠基期
1.6.4:Step-By-Step Macros 选项(每次按热键按顺序执行列表中的一条命令,即手动回放)。
1.6.3:可选 Relative 与 Screen 鼠标 CoordMode。
1.6.2:修复 ControlClick 语法错误。
1.6.1:文档帮助提示;Run 命令 RunWait 选项。
1.6.0:修复鼠标移动与间隔录制不准确;移除窗口录制的 WinWaitActive。
1.5.3:小修复。
1.5.2:Export 菜单 hotstrings 选项;导出脚本改用普通热键(::)而非 Hotkey 命令;Speed Multiplier 选项;窗口选择支持 Process(ahk_exe)标识。
1.5.1:回放速度控制:Fast Forward 与 Slow Down 键;WinMove 命令;修复 WinSet Top 失效。
1.5.0:Export 窗口 Join 选项(可将当前宏附加到另一热键宏);Record Controls 选项;Edit 菜单 Find/Replace 功能(Capture 关闭时 Ctrl+F 也可打开);PageUp/PageDown 移动行(Capture 关闭时);热键插入框问题修复;Previous Step 手动回放提示;Duplicate 行为变更(选中行复制到最后选中行之后)。
1.4.2:修复 Text/Script 行导出脚本换行问题。
1.4.1:修复 Run 命令问题、Capture 关闭时 Delete 键问题;AbortKey 命令由 Reload 改为 ExitApp。
1.4.0:INI 支持(退出时保存当前设置);Click Down/Up 录制选项(按住按钮时录制移动,适用于手绘);Key Toggle State 控制相对录制开关;Timed Interval Recording(定时间隔录制);修复鼠标移动录制最小间隔。
1.3.0:Relative Mouse Clicks Recording(按住 CapsLock 录制相对于初始位置的点击与拖动);窗口类与标题录制;窗口默认延迟(Options 菜单可改);修复鼠标移动录制 bug。
1.2.1:修复修改键未正确更新列表。
1.2.0:Beta 录制功能(Options 菜单可改设置);鼠标动作可编辑;Loop 函数行为变更(自动在选中行周围创建循环起点与终点);ListView 图标;默认 Delay 恢复为 0 并单独设置 Mouse Delay(Options 菜单可改);修复按住修改键产生误输入;列名 Command 改为 Action;文件扩展名改为 pmc 以支持后续与 Macro Creator 关联。
1.1.0:修复 Ctrl、Shift、Alt 组合键延迟;直接输入不再依赖热键框(仍可用 Insert 按钮)。
1.0.1:默认 AbortKey 改为 F9(Ctrl 键在执行中会干扰宏);默认 Delay 改为 1(鼠标性能考虑);GUI 小错误修正。
构建、翻译与本地化
README.md 补充了项目的构建与本地化事实:
- 编译:运行 Compile.ahk 可生成
MacroCreator.exe、MacroCreator-x64.exe、MacroCreator_Help.chm、MacroCreator-setup.exe;编译需要最新版 AutoHotkey,可选upx.exe(位于 AutoHotkey 安装目录 Compiler 子目录)、hhc.exe/hha.dll(位于Documentation\MacroCreator_Help-doc)、Inno Setup 6(安装器由 BuildFiles.ahk 维护生成) - 翻译:语言文件可用 Languages.xlsx 编辑,运行 ExtractLangFiles.ahk 生成 Lang 目录下的
.lang文件;界面翻译可在应用内 Settings > Language editor 修正并提交;帮助文件翻译需使用Documentation\MacroCreator_Help.ahk与其中的 .md 文件,程序会按当前语言查找命名匹配的 chm 帮助文件(如简体中文为MacroCreator_Help_Zh_CN.chm) - 运行时要求:源码需最新版 AutoHotkey 运行;SciLexer.dll 与 tesseract.exe 分别对应 SciTE4AutoHotkey 与 Tesseract 项目
总结
从 About 文档与仓库源码的对照可以看出,Pulover's Macro Creator 5.4.1 经历了从单一录制/回放到"录制—编辑—回放—导出"完整自动化流水线、再到用户自定义函数与 OCR 等高级能力的长期演进。其核心价值在于:无需编写代码即可通过录制生成宏,同时又能以 AutoHotkey 原生格式导出,兼顾易用性与脚本灵活性。对于自动化测试、重复性办公操作与 AHK 学习者而言,这是一个结构清晰、文档完备、可深入研究的开源参考实现。