更新时间:2023-11-21 11:44
AutoHotkey 是一款免费的、Windows平台下开放源代码的热键脚本语言。
通过发送键盘或鼠标的键击动作命令来实现几乎所有操作的自动化。您可以自己编写 宏(AutoHotkey Script) 或者使用宏录制器(AutoScriptWriter)来生成;
为键盘,游戏操纵杆和鼠标创建 热键。 事实上任何的按键、按钮或组合键都可以被设置为热键;
可以对Windows各类型窗口进行匹配以及相关属性调整(例如:透明、隐藏、置顶、改变大小等);
当键入您自定义的缩写时可以 扩展缩写。例如, 键入“btw”就可以自动扩展为“by the way”;
创建自定义的数据输入表格、用户界面、菜单等标准控件以及ActiveX 组件(例如IE浏览器控件)等。详情请看 图形界面 部分;
映射 键盘、游戏操纵杆和鼠标上的按键或按钮;
运行现有的AutoIt v2脚本并用 新功能 来增强它们;
借助 相关工具 以实现更强大的功能;
更多关于热键的说明
AutoHotkey 可令键盘、游戏操纵杆和鼠标的所有潜能都发挥出来。例如,除了典型的Control、Alt和Shift键之外,你还可以定义Win键(徽标键)和Capslock键作为调节键。 而实际上你还可以设置任意的键盘按键或鼠标按键作为调节键。详细内容请看 高级热键 部分。
其他功能
基本用法:
关闭或屏蔽Windows自有的快捷键,例如Win+E和Win+R;
取替Alt-Tab(通过按键、鼠标滚轮或按钮)从而减轻RSI(肢体重复性劳损);
本机代码互操作:
可以调用COM和DLL对象进行功能扩展;
可以创建机器码地址,当它被调用时会重定向到脚本中的函数;
可以复制字符串到内存地址或来自内存地址,并可以对其在指定代码页间进行转换;
文件、目录和磁盘管理:
读取、写入、复制、删除、获取设置属性以及解释文本文件比起其他语言更容易;
提供面向对象的文件I/O操作;
支持驱动器弹出以及获取驱动器列表、容量、剩余空间、文件系统、卷标、序列号、类型、状态等;
可对IN文件(配置信息文件)进行读写操作。
流程控制:
多种条件判断(字符项目、窗口、文件、进程、错误返回值等),条件下采用{}区块以及制表符进行分层级;
可以配合变量进行多级循环复杂操作;
可以与一般编程一样创建自定义函数并调用;
图形界面:
使用您喜欢的图标、工具提示(ToolTip)、菜单项目和子菜单来自定义托盘图标菜单;
显示对话框、工具提示(Tooltips)、气球提示以及弹出菜单,与用户交互;
可以置顶自定义图片来做程序启动界面;
鼠标和键盘:
可以禁用或启用用户通过键盘和鼠标对电脑进行操作而脚本不受影响。
用游戏操纵杆或键盘代替鼠标;
可以对窗口中的指定控件进行点击、改变文字等操作而不会出现鼠标点击事件;
数学相关:
可以进行一些科学运算(如三角函数、平方根、幂运算、e^N等);
屏幕管理:
通过检测图像和象素色彩来自动执行游戏中的动作;
进程管理:
执行脚本动作来响应系统关闭或注销;
使用RunAs方式指定运行用户身份;
可以对进程进行是否存在、列表、优先级、等待运行、等待结束操作;
注册表:
可以循环读取注册表并操作;
可对注册表进行读写、删除操作。
声音命令:
调节音量、设置静音,以及其他关于声卡的设置;
可以播放wav音频;
字符串管理:
可以定义字符串变量对字符串变量进行截取、替换、正则表达式匹配、大小写改变等处理;
可以生成随机数,用户可以根据随机数生成自定义随机字符;
获取并改变剪贴板的内容,包括从资源管理器中复制的文件的名称;
针对一组与通配符匹配的文件进行操作;
窗口管理:
可以检测窗口是否处于各种状态(激活、最大化、存在、隐藏等);
可以获取窗口的标题、ahk_class、文字等相关信息方便鼠标等操作;
可以对窗口进行最大化、激活、隐藏、关闭、强制关闭、等待等相关操作;
其他:
可以获取系统环境(如幕分辨率、多显示器信息、系统对象的尺寸和其他系统属性)相关信息并执行预定操作;
监控您的系统。例如,当您不希望见到的窗口出现时自动关闭它们;
可以设置定时器并启用、停用该项目;
检测系统空闲时间。例如,在系统空闲的时候执行高CPU负荷的任务;
你只要有想像力,它可以完成更多工作。
在 Windows 95/98/Me 下,一些 高级功能例如鼠标热键和 热字串 -- 在Win9x 平台将失效。
在Window8/8.1环境下,BlockInput会失效。
在Windows RT操作系统上,需要越狱并下载指定编译版本Autohotkey,手动注册相关注册表项后
即可使用,不保证所用命令有效。
1、在字符串赋值双引号)、“,”(英文逗号)需要转义,转义符为“·”(Tab上面,1左边的字符),等同于其他语言的“\u201d。其他要转义的字符:回车“`r”,换行“`n”,制表符“`t”,空格“%A_Space%”,非注释分号“`;”,非引用百分号“`%”。
2、AHKer在接触AHK可能接触过其他语言,会有书写方面的问题。建议按照标准书写风格书写并严格使用制表符以及区块进行分层。语句各属性项目严格使用英文逗号分隔而不是空格,这会大大减少错误情况。
3、使用AutoScriptWriter录制的脚本可能会用语句冗余以及操作时间不当等操作,可以作参考并适当添加win相关命令以及PixelGetColor、ImageSearch等命令在恰当的时机操作。
4、窗口以及像素相关操作(如鼠标点击)默认为相对当前活动窗口,一些操作可能会错误。需要默认为全屏幕,请在脚本头添加:
CoordMode,Pixel,Screen
CoordMode,Mouse,screen
5、脚本运行时,默认会有任务栏图标及相关右键菜单,如不需右键菜单,请在脚本头添加Menu, Tray, NoStandard;如不需要显示任务栏图标,请在脚本头添加#NoTrayIcon。
原英文帮助CHM文件被解压后,除去19个脚本页面,共计254个HTML网页文件。
待翻统计:
命令:220个共1.22M,剩79个共717K
杂项:18个共172K,剩14个共156K
根目录下:16个共366K,剩7个共221K
html 文件总计:254个页面共1.75M
未翻:100个页面共1.07M,约61.14%
已翻:154个页面共0.68M,约38.86%
主分支的版本帮助已完全翻译完毕, 翻译详情及下载请至AutoHotkey中文论坛
*AutoHotKey已推出中文版帮助,AHK版本v1.1.13.00。该中文帮助由 amnesiac 更新。
(1)将官方论坛中Tuncay大大收集的Ahk Standard Library Collection(当前版本:201009181732)集成到帮助文件, 已放出第一个测试版, 欢迎下载及提供意见和建议!
(2)由于1.0.48.05版本主分支已经停止更新近一年, 而AutoHotkey_L分支持续更新, 增加了许多重要的特性, 因此接下来计划翻译其帮助文件.
许多命令支持使用 try/catch 代替 ErrorLevel 进行错误处理. 例如:
try
{
FileCopy, file1.txt, C:older
}
catch
MsgBox An error occured!
此外, 后面的这些命令设置 A_LastError 来辅助调试: FileAppend, FileRead, FileReadLine, FileDelete, FileCopy, FileMove, FileGetAttrib/Time/Size/Version, FileSetAttrib/Time, FileCreateDir, RegRead, RegWrite, RegDelete.
自动加载. 想了解更多信息, 请参阅 函数库.
#Include
GUI 增强
对 Gui 命令和相关部分进行了一些增强:
引用 GUI 时可以用 名称或 HWND 代替介于 1 和 99 之间的数字.
Gui, New 创建新的匿名 GUI.
可以创建任意数目的命名或匿名 GUI.
新 GUI 选项: +HwndOutputVar, +ParentGUI
GUI 的拥有者可以为任意窗口: +Owner%HWND%.
Gui, Font 可以控制文本的反锯齿效果.
支持像 Internet Explorer WebBrowser 这样的 ActiveX 控件.
GuiControlGet, OutputVar, Name 获取与 GUI 控件关联的变量名.
在 Gui menus 中使用像 Ctrl+O 这样的键盘快捷键时会自动得到支持.
字体品质 可以通过 Font 子命令控制.
静态变量可以使用任意表达式进行初始化. 例如:
Sleep 500
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