AutoHotkey是一个神奇的工具。为了便于新人上手,xbeta写了此篇最最傻瓜的0级入门教程。
1 何为AutoHotkey
AutoHotkey是一个小工具软件,可以简化你的重复性工作。
比如要登录某论坛,你只要按一个键,AutoHotkey就会替你:打开浏览器、输入网址、输入用户名和密码、回车,完成登录过程。
只要有想像力,AutoHotkey可以完成更多工作,参见 AutoHotkey,让win+run如虎添翼,及更多文章。
2 下载及安装
软件名称: AutoHotkey
软件版本: 1.1.05.01
软件大小: 2+MB
软件授权: 免费、开源
适用平台: Windows 98-Win7
下载地址:点击这里下载
安装:按提示操作即可。我习惯上装在 d:\program files\AutoHotkey
第1屏是欢迎;点Next。
第2屏是版权声明;点I Agree。
第3屏是版本选择,可根据操作系统、需求,选择合适版本。比如我在WinXP下选择了 Unicode(32-bit)。
第4屏是安装内容:如下图。建议全部选中。
接下来是安装目录、开始菜单设置、安装过程。
最后,是安装成功提示:是否看帮助文件。AutoHotkey的帮助文件,写得很细。有耐心的就认真拜读,想成高手的必须要研读。(更多中文译本见这里)
3 应用例1:提示与访问网页
创建脚本文件
如下图,打开你的文本编辑器(notepad、或gVIM),新建一个文件,把下两行内容复制进去。
msgbox, 这是我的第一个AutoHotkey脚本 `n 我既关注效率,也尊重版权
run, http://xbeta.info/autohotkey-guide.htm
先任意保存到一个地方(比如桌面),文件名任意(比如 new.ahk)
注意:①文件名后辍必须为ahk;②保存格式必须选为 UTF-8!。
运行脚本文件
这时,双击new.ahk看到效果了:
先弹出如下提醒
你点击“确定”按钮后,就会启动浏览器,打开本文网址。
原理解释:
所谓脚本,其实就是一个txt文件。它由用户编写,由AutoHotkey来执行。
第1句:msgbox是一个命令(或称为函数),AutoHotkey见到它,就知道要弹出一个消息窗口了。后面的文字是参数,在这一命令中,就是弹出消息的文字。其中的`n表示换行。中间用半角逗号分隔。
第2句:类似,函数是run,就是运行。后面的参数就是本文的url。也就是说,AutoHotkey的run功能,可以运行程序,也可以打开文档(如 d:\freeware-list.txt),也可以打开网址。
4 应用例2:缩写
将下面的语句保存为 new2.ahk (提醒 UTF-8 编码):
::test1:: 善用佳软。ひらがな 平仮名;カタカナ 片仮名。Korean/한국어/조선말。
运行后,在任何能正常显示 unicode 字符的程序中(比如浏览器的地址栏、MS Word),键入 test1后,再加空格、或tab、或回车,就可以触发缩写,“善用佳软……”内容就上屏了。
通过这一例子,可以看到 AutoHotkey 实现常用短语(地址、邮箱、密码、网址、签名)的缩写非常方便。
关于缩写功能,还有人用 AutoHotkey 开发过一款专门用于缩写功能的Texter呢,详见这里。
5 自动登录网站
将下面的语句保存为 new3.ahk (提醒 UTF-8 编码):
#1::
run, http://mail.163.com
WinWaitActive, 网易 ;;等待网页加载成功(至少title显示出来)
sleep, 1000 ;;保险起见,再等1秒(视网速而定)
send, user-id{tab}password{enter};;模拟键入用户名、密码、回车
return
运行脚本……但没有反应?没错,这是因为脚本中为相应命令定义了热键。#1表示Win+1键。
按下Win+1键,脚本会自动打开163信箱、输入用户名、密码,完成登录。
注意:本例有实际执行中有可能不成功。因为邮箱登录页面可能已经保存了用户名,甚至也保存了密码,导致初始输入焦点不准确。笔者实际在用的例子是登录Lotus Notes客户端,并输入密码。代码如下:
#n::
run, “c:\Program Files\lotus\notes\nlnotes.exe”
winwait,,输入口令
sendinput, mypassword{enter}
return
6 后记
作为0级入门教程,就写到这里吧。只要大家边读、边动手实践,就不难从这些例子中发现 AutoHotkey 的神奇作用。
如要再进步发掘 AutoHotkey 的魔力,可以:
(1)阅读官方帮助文档。
(2)参见笔者使用AutoHotkey的更多实例,AutoHotkey|win run加它更方便,AutoIT3 vs AutoHotkey,AutoHotkey调用Irfanview把24位真彩图片优化到实际色深等。
(3)目前最全面的AutoHotkey学习资料,由 amnesiac 整理:AutoHotkey 学习指南
注:xbeta用gVIM编辑ahk文件的,高亮效果如下:
附:文章更新历史
2011-10-24: 更新版本号、截屏。
2011-02-13:更新失效图片,把安装包更换为AutoHotkey_L,增加缩写、Notes登录实例。
2006-09-13:初稿于sina blog,并被转载至PConline 《演绎段氏”凌波微步” AutoHotkey 0级入门教程》>
《 “AutoHotkey 0级入门教程:让重复工作一键完成 (2011-10-24修订)” 》 有 74 条评论
貌似很强大!我都不知道这个软件,改天一定得研究研究了~
网友问:启动AutoHotkey.exe后,默认不是会加载一个脚本吗。它默认加载的是这个脚本(原问附图,显示为AutoHotkey.ahk),我怎么可以设置,让我启动AutoHotkey.exe后加载我指定的脚本啊?
@善用佳软, 这里需要更新了.
AutoHotkey.exe [Switches] [Script Filename] [Script Parameters]
如果省略其中的[Script Filename]参数, 它将会运行 (或者提示你创建) 下列默认位置的其中一个文件:
[AHK_L 51+]: %AhkExeDir%%AhkExeName%.ahk 或 %A_MyDocuments%%AhkExeName%.ahk, 此处 %AhkExeDir% 和 %AhkExeName% 分别为包含运行当前脚本的可执行文件的目录和文件名的变量, 不包括 “.exe” 扩展名.
[早期版本]: AutoHotkey.ini (在当前工作目录) 或 %A_MyDocuments%AutoHotkey.ahk.
@amnesiac, 这里补充说明
对于 AHK_L 51+, 如果需要在直接运行 AutoHotkey.exe 后加载我们设定的脚本, 可以把脚本名称改变为 AutoHotkey.ahk 并放在 %AhkExeDir% 或 %A_MyDocuments% 目录中.
另一种方法是把我们设定的任意名称的脚本 (如 test.ahk) 放到上面的其中一个目录, 并把 AutoHotkey.exe 改为 test.exe.
我在这里面写了一写脚本
这些脚本执行完了之后这个程序就退出了啊
为什么啊
@daizhaolin, 当一个脚本包含 定时器 和/或 自定义菜单项,但没有 热键 、热字符串 或者没有使用任何的 OnMessage() 或 Gui 时,可以使用 #Persistent 指令让脚本持续运行.
激活光标所在位置的窗口
比如说开了两个窗口,当前活动窗口必然只有一个。如何实现以下功能:鼠标箭头移到某个窗口上边,此窗口就自动被激活。谢谢xbeta!
@韩, 这里提供一个参考方法:
使用 MouseGetPos 命令获取鼠标当前悬停位置的窗口, 然后使用 WinActivate 激活.
yonken兄《自动化操作轻松入门系列》文章 链接坏了..
最新的地址应该在这里。
http://yonken.blogcn.com/diary,103098431.shtml
[…] AutoHotkey 0级入门教程:让重复工作一键完成 […]
图都挂了,看不到效果啊
(xbeta注:updated)
目前已经用上你推荐的,evernote,非常方便,让我办公室和单位做事有了一个方便的纽带。
@123ping, 其实 microsoft的onenote2010更强大点,虽然也大了好多倍
也算遵循功能的二八定律吧
按键精灵多好用,用这玩意儿干啥
@sophiasmth, 比按键精灵要小巧得多,同样能够实现按键精灵提供的诸多功能,有更大的社区提供支持等等都是选用ahk的原因。ahk最大的缺点是上手不容易,需要自己编写脚本让大部分人望而生畏,远没有按键精灵来得直观明白。选择哪个端看用户的需求了。这和选择autoit还是ahk是一样的道理。
@sophiasmth, 最大的原因是比按键精灵小(当然比它小的同类软件还有许多,比如PhraseExpress)。而且开源本身就是个选择的好理由。
再说了,许多更加复杂的操作,按键精灵录起来有时候还挺讨厌的。
ahk的教程也有不少。虽然难上手,但是用爽了就超过按键精灵。好比单反,上手比傻瓜卡片机难,假如当傻瓜机用的话还浪费力气,但是娴熟以后拍出来的效果就不一般了。
和最新版的autoit那个好,有什么区别?
正打算学,不知道学那一个
以前用这玩意搞批量回单,很爽很爽很爽!一个下午完成了MIP
标记一个,以后偷懒工作肯定用得着的。
实在不懂这个的具体作用是什么
试用了一下,自动登录网站时老和输入法冲突,不知如何解决
@htwo, 参考方法:
先记录当前的输入法, 然后切换到英文输入, 之后再切换回来. 在中文论坛有切换输入法的相关脚本.
另外, 上面使用模拟按键操作网页的方法简便, 可靠性较差, 对可靠性要求较高时或可利用COM与网页交互.
加个enter命令就解决了。另外这个软件可不可以鼠标定位呀
鼠标定位
有个问题:如何关闭一个程序?比如我运行1.ahk
#1::
run, notepad
return
用什么命令关闭这个软件,还有诸如在系统托盘里的程序,不像notepad,可能关窗口也没用。
@yxx41, 关闭进程, 参见帮助中 process 命令
@amnesiac, 你没有理解错啊,我不是要退出运行的ahk,而是要退出ahk打开的程序。。。
@lhr 理解偏差,呵呵,不过还是谢谢解答!
@yxx41, 可以右击AHK的托盘图标,选择Exit;又戓者添加一个快捷键 #2::exitapp 按#2就可以退出了
@lhr, @amnesiac
谢谢解答!
@yxx41, 在看到lhr的回答后我想我前面对你问题的理解错误了.
我写了个脚本
#Include ScreenCapture.ahk
CaptureScreen(0,0,”a.jpg”,20)
这个是截屏的,单独在命令行用test.ahk 运行可以运行,我想把它注册成按键再执行比如ctrl+k
^k::
#Include ScreenCapture.ahk
CaptureScreen(0,0,”a.jpg”,20)
return
这样运行就报错
@yak,
这样试试:
#Include ScreenCapture.ahk
^k::
CaptureScreen(0,0,”a.jpg”,20)
return
[…] 我要使用AutoHotKey,使重复工作一键完成。 […]
登录邮箱登不上!
第一次就让我很受伤,我还这么用下去
连中文输入法都不支持,那肯定是不支持中文输入了,还这么搞?
我感觉自定义短语蛮好的,可以作为输入法的补充,
但是空格键和回车键和输入法会冲突,所以最好是只用tab激活,
所以,请问能都只用tab激活,我是门外汉哦。
@youtubibi,
问一得一的回答,要在脚本中加一句
#Hotstring EndChars -()[]{}:;’”/,.?!`n `t
问一得十的回答:
Unless the asterisk option is in effect, you must type an ending character after a hotstring’s abbreviation to trigger it. Ending characters initially consist of the following: -()[]{}’:;”/,.?!`n `t (note that `n is Enter, `t is Tab, and there is a plain space between `n and `t). This set of characters can be changed by editing the following example, which sets the new ending characters for all hotstrings, not just the ones beneath it:
#Hotstring EndChars -()[]{}:;’”/,.?!`n `t
问鱼得渔的回答:
我上面的答案都来自软件自带的帮助文件。
[…] 我要使用AutoHotKey,使重复工作一键完成。 […]
[…] 我要使用AutoHotKey,使重复工作一键完成。 […]
[…] 我要使用AutoHotKey,使重复工作一键完成。 […]
缩写比较好,就是不知道为什么在字符的末尾会多一个空格。不管是Autohotkey还是Autohotkey_L,都这样
[…] 我要使用AutoHotKey,使重复工作一键完成。 […]
[…] 我要使用AutoHotKey,使重复工作一键完成。 […]
[…] 我要使用AutoHotKey,使重复工作一键完成。 […]
[…] 我要使用AutoHotKey,使重复工作一键完成。 […]
写了篇文章:Autohotkey快捷打开本地程序及网页应用程序
我以前用的按键精灵,做了一些按键脚本,本以为用AHK也能实现那些功能,但很抱憾啊,根本行不通,我就拿一个简单的实例来说明,我用按键精灵设置的在AI中复制UPC的脚本:按Ctrl+a,ctrl+c,ctrl+w,Ctrl+v就主要这几个按键,当然中间有延时的,每次用按键精灵都能完美实现。但用AHK脚本,我不管如何调试,更改延时长短,只有偶尔几次成功,大部分时间总是只复制第一个UPC条形码,其他的根本不能复制。。哎。。。脚本确实没有什么问题,都是些简单的发送按键命令。我真的对AHK非常失望啊。。。连这个简单的脚本都运行失误。而且把其他无关程序全关闭了,在AHK中测试也很难通过。看来AHK在有些方面还不如按键精灵稳定啊!!所以有些脚本我还是用按键精灵来,这确实是AHK的一大败笔!!在应用中有同感的网友也发表下感叹啊。
AutoHotkey 刚开始接触不错,但脚本语言比较奇怪,调试也比较麻烦
后改用了AutoIt,特别是AutoIt的DLL,很方便
[…] 和 “FAQ (常见问答)” 2. 自动化操作入门指南 (作者: yoken) 3. AutoHotkey 0级入门教程:让重复工作一键完成 (作者: xbeta) 4. 小众快餐店系列教程 (作者: sfufoet) 5. 小鸟学AHK系列教程 […]
额,订阅博主的博客很久了。现在提个问题,或许有点“作恶”。
今天突然想到一个问题,能不能借助此软件实现各个网站的“签到”?比如说dbank。
有的网站还实行在规定时间内“签到”。比如说excelhome。
如果实现了上面功能的话,用windows的定时任务做就可以实现了。
如果博主有时间的话,能否以dbank为例做一个脚本。
xbeta注:是要求签到的网站在作恶。
如下代码用来帮助我完成每天的例行审批工作。
① 登录网站:
::itsm::
run, d:Program FilesnetgbGreenBrowser.exe http://abcfadfsfa
WinWaitActive , IT
;msgbox, hello
sleep, 500
sendinput, myid{tab}password{enter}
return
② 点击按钮进行审批:
#a::
winmaximize, a
MouseClick, left, 956, 163
Sleep, 500
Send, {CTRLDOWN}{END}{CTRLUP}
MouseClick, left, 500, 700
Sleep, 100
winwait, ahk_class #32770
sleep, 200
;WinWait, Message from webpage,
;IfWinNotActive, Message from webpage, , WinActivate, Message from webpage,
;WinWaitActive, Message from webpage,
send, {enter}
return
快捷键似乎神奇,但快捷键如果超过5个,记忆又是个问题。大多数人能记住的热键不会超过10个。
HotString,其实很多输入法软件都有类似的功能。
当然这个软件如果仔细研究,还可以实现一些更复杂的功能。但得到的与付出的似乎又不成比例。
这软件很有用,但仅仅是理论上的。
@w,
大多数人不爱用快捷键,但不代表能记住的快捷键会少。实际上喜欢用快捷键的人可以记住不少的快捷键,既然AHK本身是面向喜欢用快捷键的人,自然不会有这方面的问题。
我可以举一些例子是输输入法很难做到的,当然,都是很日常的例子。
alt+9,输入()并把光标移到中间。不少输入法有这个功能,但绝对是无法用修饰键完成的,只能在输入两个括号后自动移动光标。但是这样你要按的键就是3个了shift、9、0。如果设置9、0作为快捷键,输入90的时候就有麻烦。
其余的还有,【】、{}、《》等,都可以很方便的输入,并且把光标移到中间。
这是很简单常见的应用,并不复杂,但却无比方便。我上面列出的快捷键已经有4个了,但是你要记忆的只是alt加上这些符号的其中一边,比如ait+9,ait+[、alt+,完全没有记忆难度。
补充上面的:
如果使用了Windows 7,会发现如果要调用程序的话,Windows 7 本身就很方便了。用这个软件来呼出程序,实在是多此一举。甚至Launchy这个软件的价值都降低了。
当然如果非要实现一些花哨的功能,像直接打开浏览器通过google输入关键字查询,这些只有AutoHotKey才办得到。但这种功能真的是我们每天需要的吗?
AAuto强大太多了
始终觉得比起autohotkey,autoit更适合我(至少autoit的集成和翻译工作比autohotkey更好
———————————–
用autoit的时候,
Send(“{CAPSLOCK oN}”&$url)
完美解决输入法的死局
快捷键似乎神奇,但快捷键如果超过5个,记忆又是个问题。大多数人能记住的热键不会超过10HotString,其实很多输入法软件都有类似的功能。
@xp系统下载, 怎么可能呀。但是用Photoshop,常用的快捷键就不止5个了,ctrl+s,保存;ctrl+o,打开文件;ctrl+alt+i,修改图像尺寸;ctrl+alt+c,修改画布尺寸;ctrl+n,新建文件;ctrl+w,关闭文件。其他还有很多常用的。
Firefox,和PS基本一致,ctrl+t,新建标签;ctrl+w,关闭标签。
快捷键的记忆从来都不会是问题,要用到快捷键的,必然都是很常用的操作,可能在开始的时候还要一点记忆,多用几次身体自然就会记住了。这就好像你打字一样,键位的位置在你熟练后还会忘记吗?
更好的例子就是游戏,尤其是即时战略游戏,里面那么多的快捷键,玩家们不照样记的很好吗?
您好,请教您一个跟主题无关的问题,您的网页为什么能够 任意放大而不会超宽的,多谢了!
我眼睛近视,这个功能太有用了!跟维基百科一样的!
看博主介绍,这款软件的名字就很对意,咱就喜欢这类软件,但脚本写的时候会不会比较复杂。
不错
AHK这款热键脚本语言我是在逛论坛的时候无意中发现的,最近也在慢慢熟悉他,博主的文章写得还不错,希望以后能够多多分享类似的文章,供大家学习,谢谢啦~~~
与aauto的差距不是一点两点。
用了你的东西就留个脚印
[…] AutoHotkey 中文站 维基百科:AutoHotkey 善用佳软:AutoHotkey 学习指南 善用佳软:AutoHotkey 0级入门教程:让重复工作一键完成 小众软件:AutoHotkey快餐店系列 […]
[…] 自定义快捷键_autohotkey非常棒 http://xbeta.info/autohotkey-guide.htm AutoHotkey 0级入门教程:让重复工作一键完成 http://xbeta.info/ahk-1.htm […]
[…] AutoHotkey(强烈推荐):AutoHotkey是一个小工具软件,可以简化你的重复性工作,只需提前写好一个脚本,一键自动化启动或运行程序,甚至帮你自动登陆某个论坛,这里也推荐善用佳软的教程:AutoHotkey 0级入门教程:让重复工作一键完成 […]
[…] 自定义快捷键_autohotkey非常棒 http://xbeta.info/autohotkey-guide.htm AutoHotkey 0级入门教程:让重复工作一键完成 http://xbeta.info/ahk-1.htm […]
[…] 二、唐僧级软件 《大话西游》里的唐僧啰啰嗦嗦啥事都管让孙猴子不厌其烦,但在故事结尾的时候他又变得言简意赅跟谁说话都是那么一两个字,无论怎样孙猴子最终都得听他师父的话。 话说有一款软件叫AutoHotKey,下载地址:http://www.autohotkey.com/download/,刚安装完成的时候它就是一摆设,甚至连界面都没有,非得你对它说一大堆话之后它才干活,不过效率相当高。我已经用它来干很多事情了,下面让我举几个例子: 1.快速启动程序 Win+g 打开Chrome浏览器 Win+v 打开GVim Win+Ctrl+v 打开VS2010 Win+q 打开QQ Win+Ctrl+d 关机 Win+Ctrl+r 重启系统 Win+t 打开Total Commander Win+c 打开计算器 …… 2.常用文字快速输入 ;@ 我的邮箱地址 ;qq 我的QQ号码 ;add 我的联系地址 …… 3.窗口操作(下面的几个操作在Win7中是内置的,我觉得相当不错就用这个东西在Win2003里直接模仿了) Win+→ 当前窗口充满屏幕右并屏 Win+← 当前窗口充满屏幕左并屏 Win+↑ 当前窗口最大化 Win+↓ 当前窗口最小化 4.特殊操作 Ctrl+Alt+c 选取当前鼠标坐标的颜色代码并复制到剪贴板中 以上是我的部分应用,你还可以发挥想象力整些更好玩的东西出来,比如煎蛋网一编辑用它做了一个泡面定时器……………… 这东西怎么用得看这里(http://xbeta.info/autohotkey-guide.htm) […]
[…] 自定义快捷键_autohotkey非常棒 http://xbeta.info/autohotkey-guide.htm AutoHotkey 0级入门教程:让重复工作一键完成 http://xbeta.info/ahk-1.htm […]
[…] AutoHotkey(强烈推荐):AutoHotkey是一个小工具软件,可以简化你的重复性工作,只需提前写好一个脚本,一键自动化启动或运行程序,甚至帮你自动登陆某个论坛,这里也推荐善用佳软的教程:AutoHotkey 0级入门教程:让重复工作一键完成 […]
[…] AutoHotkey:强烈推荐,AutoHotkey是一个小工具软件,可以简化你的重复性工作,只需提前写好一个脚本,一键自动化启动或运行程序,甚至帮你自动登陆某个论坛,这里也推荐善用佳软的教程AutoHotkey 0级入门教程:让重复工作一键完成 (2011-10-24修订) […]
[…] AutoHotkey:强烈推荐,AutoHotkey是一个小工具软件,可以简化你的重复性工作,只需提前写好一个脚本,一键自动化启动或运行程序,甚至帮你自动登陆某个论坛,这里也推荐善用佳软的教程AutoHotkey 0级入门教程:让重复工作一键完成 (2011-10-24修订) […]
[…] 2,创建属于你的脚本(超简单,点我) […]
您好!我是从TC开始接触xbeta的,虽然刚刚开始学习,但是收获非常大!今天看的autohotkey,慢慢学习,每天进步一点点。谢谢!