这个页面描述了新添加到 AutoHotkey_L 分支的功能, 现在简称为 "AutoHotkey 1.1".
警告: 近年来本文档已被忽视, 可能会丢失一些最近的变化.
特性 | 描述 |
---|---|
Break LoopLabel | 退出一个循环或任意数目的嵌套循环. |
Continue LoopLabel | 继续循环, 即使在任意数目的嵌套循环中. |
For x,y in z | 从头到为尾循环对象的内容. |
Loop Until | 循环直到条件为真. 可用于任意类型的循环. |
Try...Catch...Finally | 提供结构化的异常处理机制. |
Throw | 抛出异常. |
特性 | 描述 |
---|---|
FileEncoding | 为 FileRead, FileReadLine, Loop Read, FileAppend 和 FileOpen() 设置默认编码. 另请参阅: 文本编码 |
Gui | 请参阅后面的 GUI 增强. |
IniRead/Write/Delete | 读取, 写入或删除整段, 或获取所有段名称组成的列表. |
Menu, Icon | 设置或移除菜单项图标. |
Run | 改进了参数的解析方式. |
SendInput {U+nnnn} | 发送 Unicode 字符. 在 Unicode 版本中可以直接使用 Unicode 字符. |
SendLevel | 控制热键和热字串是否忽略模拟的键盘和鼠标事件. |
SetFormat, IntegerFast, h|H | 设置小写或大写的十六进制格式. |
SetRegView, RegView | 允许 32 位脚本中的注册表命令访问 64 位注册表视图, 反之亦然. |
Transform, HTML | 执行代码页或 HTML 转换. |
WinGet, ..., ProcessPath | 获取拥有指定窗口的进程的完整路径和名称. |
特性 | 描述 |
---|---|
#If expression | 类似于 #IfWinActive, 但可以是任意类型的表达式. |
#IfTimeout | 设置计算单个 #If 表达式可以使用的最大时间. |
#MenuMaskKey | 改变用来屏蔽 Win 或 Alt 键松开事件的按键. |
#Include <Lib> | 包含函数库文件夹中的脚本文件. |
#InputLevel | 控制热键和热字串是否忽略模拟的键盘和鼠标事件. |
#Warn | 启用或禁用为选择的情况提示开发者错误的警告. |
特性 | 描述 |
---|---|
ComObjActive | 检索一个注册的 COM 对象. |
ComObjArray | 创建用于 COM 的 SAFEARRAY. |
ComObjConnect | 连接 COM 对象的事件源到带有给定前缀的函数. |
ComObjCreate | 创建 COM 对象. |
ComObject | 包装要作为参数或返回值传递的值和类型. |
ComObjEnwrap/Unwrap | 包装/解开 COM 对象. |
ComObjError | 启用或禁用 COM 错误通告. |
ComObjFlags | 获取或改变控制 COM 包装器对象行为的标志. |
ComObjGet | 返回由 COM 组件提供的对象引用. |
ComObjMissing | 创建一个 "缺失参数" 对象以传递给 COM 方法. |
ComObjParameter | 包装要作为参数传递的值和类型. |
ComObjQuery | 查询 COM 对象的接口或服务. |
ComObjType | 从 COM 对象获取类型信息. |
ComObjValue | 获取存储在 COM 包装器对象中的值或指针. |
Exception | 创建用于 Throw 的异常对象(同时提供对堆栈的受限访问). |
FileOpen | 提供面向对象的文件 I/O. |
Func | 获取函数的引用. |
GetKeyName/VK/SC | 获取按键的名称/文本, 虚拟按键码或扫描码. |
InStr | 搜索字符串的 出现位置, 从左边或右边开始. |
IsByRef | 判断变量是否是 ByRef 参数. |
IsObject | 判断某个值是否为对象. |
StrPut / StrGet | 复制字符串到内存地址或从内存地址复制, 可选地将其转换为给定代码页或从给定代码页转换. |
Trim | 移除字符串的开始和/或末尾的某些字符. |
RegEx (?CNum:Func) | 在正则表达式进行模式匹配期间调用函数. |
函数库 | 新的 "本地库" 和 #Include <LibName> . |
可变参数函数 | 函数可以通过数组接受可变数目的参数. |
静态初始化 | 静态变量现在可以使用任意表达式进行初始化. |
特性 | 描述 |
---|---|
概述 | 对象的常规行为和用法. |
对象 | 可以使用其他功能扩展的关联数组. |
枚举器 | 可以枚举容器中的项目. |
文件 | 提供访问文件的接口. FileOpen() 返回文件类型的对象. |
Func | 表示可以被脚本调用的自定义或内置的函数. |
ComObject | 请参阅上面的 ComObj 函数. |
特性 | 描述 |
---|---|
A_Is64bitOS | 当操作系统为 64 位则值为 1(真), 为 32 位则为 0(假). |
A_IsUnicode | 在 Unicode 版本中, 此变量值为 1(true). 在 ANSI 版本中此变量未定义, 所以等同为 false. |
A_FileEncoding | 包含用于多种命令的默认编码, 请参阅 FileEncoding. |
A_OSVersion | 支持 Windows 7 和 Windows 8, 请参阅 A_OSVersion. |
A_PriorKey | 在最近按键按下或释放前最后按下的按键名称 ... (更多细节) |
A_PtrSize | 包含指针的大小, 单位为字节. 此大小为 4(32 位) 或 8(64 位). |
A_RegView | 由 SetRegView 设置的当前注册表视图. |
A_ScriptHwnd | 脚本隐藏主窗口的唯一 ID(HWND/句柄). |
特性 | 描述 |
---|---|
Ptr | 在 32 位版本中等同于 Int 而在 64 位版本中为 Int64. 由 DllCall(), NumPut() 和 NumGet() 所支持. |
AStr, WStr | 仅 DllCall() 支持, 请参阅脚本兼容性. |
特性 | 描述 |
---|---|
兼容性 | 在 DllCall() 中如何处理 Unicode 等. |
脚本文件 | 在脚本文件中使用 Unicode 编码. |
SendInput | 在 SendInput 中使用 Unicode. |
特性 | 描述 |
---|---|
ahk_exe | 窗口可以通过拥有此窗口的进程名称或路径(EXE 文件) 进行标识. |
调试 | 交互式调试功能(单步执行等). |
错误处理 | Try/catch/throw 和增加的 A_LastError 可用性. |
GUI 增强 | 对 Gui 命令和相关部分的多方面增强. |
图标支持 | 资源标识符和改进的对各种图标大小的支持. |
其他变更 | 影响脚本兼容性的改变. |
版本历史 | AutoHotkey_L 的修订历史. |
许多命令支持使用 try/catch 代替 ErrorLevel 进行错误处理. 例如:
try { FileCopy, file1.txt, C:\folder FileDelete, C:\folder\old.txt } catch MsgBox An error occured!
此外, 后面的这些命令现在设置 A_LastError 来辅助调试: FileAppend, FileRead, FileReadLine, FileDelete, FileCopy, FileMove, FileGetAttrib/Time/Size/Version, FileSetAttrib/Time, FileCreateDir, RegRead, RegWrite, RegDelete.
除了 %A_MyDocuments%\AutoHotkey\Lib
的用户库和在 AutoHotkey 目录的标准库外, 函数还可以从 %A_ScriptDir%\Lib
中的 "本地库" 自动加载. 想了解更多信息, 请参阅函数库.
#Include <LibName> 可以明确加载函数库中任意一个库文件.
对 Gui 命令和相关部分进行了一些增强:
静态变量现在可以使用任意表达式进行初始化. 例如:
Sleep 500 MsgBox % Time() "ms since the script started." Time() { static Tick := A_TickCount return A_TickCount - Tick }
FileRead, FileReadLine, Loop Read 和 FileAppend 支持 Windows 所支持的大部分文本编码, 而不限于系统默认的 ANSI 代码页. 可以用 FileEncoding 设置默认编码, 此设置在 FileRead 和 FileAppend 中可以使用如下方法覆盖:
FileRead, OutputVar, *Pnnn Filename FileAppend , Text, Filename, Encoding
此处 nnn 必须是数值的代码页标识符, 而 Encoding 遵循与 FileEncoding 相同的格式.
另请参阅: 脚本兼容性
可变参数函数可以通过数组接受可变数目的参数, 而可变参数的函数调用可以用来传递可变数目的参数给函数.
可以从可执行文件中提取操作系统支持的任意大小的图标资源. 当图标组中存在多种大小的图标资源时, 则使用其中最合适的大小. 在修订号 17 之前的版本中, 系统先选择任意的图标资源, 接着调整到系统的大图标尺寸, 然后调整回请求的尺寸.
使用负数的图标编号可以标识可执行文件中的一组图标资源. 例如, 下面的语句设置托盘图标为 ahk 文件的默认图标.
Menu, Tray, Icon, %A_AhkPath%, -160