是一款免费的、Windows平台下开放源代码的热键脚本语言,是为游戏操纵杆和鼠标创建的热键,是自动按键。也可以通过命令调用系统接口及程序,并创建基于简单语言的图形化界面的执行程序。
平台简介
AutoHotkey 是一款免费的、Windows平台下
开放源代码的
热键脚本语言。
功能
通过发送键盘或鼠标的键击动作命令来实现几乎所有操作的自动化。您可以自己编写 宏(AutoHotkey Script) 或者使用宏录制器(AutoScriptWriter)来生成;
为键盘,
游戏操纵杆和鼠标创建
热键。 事实上任何的按键、按钮或
组合键都可以被设置为热键;
可以对Windows各类型窗口进行匹配以及相关属性调整(例如:透明、隐藏、置顶、改变大小等);
当键入您自定义的缩写时可以 扩展缩写。例如, 键入“btw”就可以自动扩展为“by the way”;
创建自定义的
数据输入表格、
用户界面、菜单等
标准控件以及
ActiveX 组件(例如
IE浏览器控件)等。详情请看
图形界面 部分;
运行现有的AutoIt v2脚本并用 新功能 来增强它们;
将
脚本文件编译 成EXE
可执行文件,使得程序在没有安装AutoHotkey的机器上得以运行;
借助 相关工具 以实现更强大的功能;
AutoHotkey 可令键盘、
游戏操纵杆和鼠标的所有潜能都发挥出来。例如,除了典型的Control、
Alt和Shift键之外,你还可以定义Win键(
徽标键)和
Capslock键作为调节键。 而实际上你还可以设置任意的键盘按键或鼠标按键作为调节键。详细内容请看 高级热键 部分。
其他功能
基本用法:
关闭或屏蔽Windows自有的
快捷键,例如Win+E和Win+R;
取替Alt-Tab(通过按键、
鼠标滚轮或按钮)从而减轻
RSI(肢体重复性劳损);
可以调用COM和DLL对象进行功能扩展;
可以创建
机器码地址,当它被调用时会重定向到脚本中的函数;
可以复制
字符串到
内存地址或来自内存地址,并可以对其在指定
代码页间进行转换;
读取、写入、复制、删除、获取设置属性以及解释
文本文件比起其他语言更容易;
支持
驱动器弹出以及获取驱动器列表、容量、剩余空间、
文件系统、
卷标、序列号、类型、状态等;
多种条件判断(字符项目、窗口、文件、进程、错误
返回值等),条件下采用{}区块以及
制表符进行分层级;
可以配合变量进行多级循环复杂操作;
可以与一般编程一样创建自定义函数并调用;
图形界面:
使用您喜欢的图标、
工具提示(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
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%.
支持像
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