网上Autohotkey完整教程实在太少,许多新手不得不对着帮助文档学习。但是帮助文档只是很多命令的一种归类,跳跃性较大,初学者还是需要循序渐进地学习。为此,准备自己写部教程,抛砖引玉,希望能帮助各位编程爱好者。
关于软件安装,编辑器选择,代码运行等基本操作这里略去,直接进入编程正题。
代码如下
Msgbox, HelloWorld
运行结果如下
这里MsgBox命令的作用是在小窗口中显示指定文本。
正如Autohotkey的字面意思,它是一个很强大的自动化热键软件,即用某些按键或者字符串触发另外一些指令。
1,热键(快捷键)
^j::
Send, My First Script
Return
^指Ctrl键;^j指按下Ctrl+j键;::用来分割热键触发的功能;这里第二行Send指令即为Ctrl+j触发的功能;Send命令用来发送按键序列,这里发送了一行文本“My First Script”;Return表示热键代码块结束,如果代码只有一行则可以省略。
在空白记事本上按下Ctrl+j,结果如下图
与^表示Ctrl类似,键盘上很多特殊键都用特殊符号表示,常用热键修饰符如下表所示,具体可查帮助文档,但是需要注意,这些按键必须组合其他键(不用&组合的情况)才能用其特殊符号表示。如下例,热键并不是Ctrl而是^。
^::
Send, My First Script
Return
符号 | 说明 |
---|---|
# | Widows键 |
! | Alt键 |
^ | Ctrl键 |
+ | Shift键 |
< | 成对按键中左边的那个,如 |
> | 成对按键中左边的那个,如>!为键盘右边的Alt键 |
当单独使用某个特殊按键时,特殊修饰符如下表
符号 | 说明 |
---|---|
LWin | 左边Widows键 |
RWin | 右边Windows键 |
Control(或Ctrl) | Ctrl键 |
LControl(或LCtrl) | 左边Ctrl键 |
RControl(或RCtrl) | 右边Ctrl键 |
Alt | Alt键 |
LAlt | 左边Alt键 |
RAlt | 右边Alt键 |
Shift | Shift键 |
RShift | 右边Shift键 |
LShift | 左边Shift键 |
Space | 空格键 |
Tab | Tab键 |
Enter(或Return) | 回车键 |
Escape(或Esc) | Esc键 |
Backspace(或BS) | 退格键 |
F1 | 功能键,其它功能键类似 |
Numpad0 | 小键盘0,其它小键盘数字类似 |
组合热键可以通过&连接两个按键定义,如下例子,同时按下小键盘0和1触发功能。
Numpad0 & Numpad1::
MsgBox You pressed Numpad1 while holding down Numpad0.
Return
2,热字符串
即用一串字符实现其他功能,范例如下
::ftw::Free the whales
热字符串需要用两个::将字符串ftw夹在中间。当你在键盘上输入ftw,再按下终止符号后,ftw将转换成Free the whales。终止符可以是回车、空格、Tab等。
如果想不输入终止符直接触发按键效果,可以采用如下语法
:*:ftw::Free the whales
3,Send命令
这里简单介绍Send命令。Send命令主要用来发送按键到特定程序。
和热键类似,Send指令也有一些特殊按键,但是注意不要混淆,大部分特殊按键和热键类似,仅仅需要用大括号包住。部分如下
符号 | 说明 |
---|---|
# | Widows键 |
! | Alt键 |
^ | Ctrl键 |
+ | Shift键 |
如Send !a为发送Alt+a,Send !+a为发送Alt+Shift+a。如果需要发送!需要用大括号括住,如Send {!}a为发送!a。注意,特殊按键除了上表也可以采用大括号形式,如{Alt}、{Shift}、{Ctrl}等。
想要表示按住或松开某个按键, 可以将这个键用花括号围起来, 同时加上单词UP或DOWN。
Send, ^s ; 都表示发送 CTRL+s 键击
Send, {ctrl down}s{ctrl up} ; 都表示发送 CTRL+s 键击
Send, {ctrl down}c{ctrl up}
Send, {b down}{b up}
Send, {Tab down}{Tab up}
Send, {Up down} ; 按下向上键
Sleep, 1000 ; 保持1秒
Send, {Up up} ; 然后松开向上键
AltTab和ShiftAltTab是两个特殊的命令, 它们仅在与热键在同一行时才能被识别。
LAlt & j::AltTab
LAlt & k::ShiftAltTab
4,Run命令
该命令用执行程序或者打开网站。如下例
Run, https://autohotkey.com
Run, C:\Some_Program\Program.exe
某些程序并不需要完整路径, 如 Windows 标准程序
Run, notepad.exe
Run, msPaint.exe
5,注释
最后简单提一下Autohotkey的注释功能。注释有两种方式
(1)使用分号来注释脚本
Run Notepad ;这是和命令在同一行的注释
(2)使用/*和*/符号注释整块代码
/*
MsgBox, 这行被注释掉了
MsgBox, 这行也被注释掉了
*/
6,几个例子
::/mail::[email protected]
输入/mail并按下回车会自动转换成“[email protected]”
::/gs::
clipboard = 煎蛋娱乐有限公司 ; clipboard指剪切板,将汉字赋给剪切板
Send ^v
return
输入/gs并按下回车会自动转换成“煎蛋娱乐有限公司”
::/dd::
d = %A_YYYY%-%A_MM%-%A_DD% ;获得系统时间比如今天的时间:2018-12-21
clipboard = %d%
Send ^v
return
输入/dd并按下回车会自动转换成今天的日期,如“2018-12-21”