AutoHotKey是个好东西
by 李笑来 on 2009/08/06
in 计算机相关
过去,我使用KeyText这个软件定义一些自用的快捷键。而稍微复杂一点的键盘鼠标模拟、窗口操作,就用AutoIt写脚本。最近升级Windows7,痛苦地发现KeyText不兼容,只好弃用。于是,在网上搜了一下,才发现对我这种功能要求简单的用户来说,其实完全可以用AutoHotKey替代AutoIt和KeyText。
AutoHotKey的使用方法非常简单(也可以非常复杂)。下载AutoHotKey之后安装;再下载专用编辑器SciTE并安装。
在硬盘的某个位置为AutoHotKey脚本创建一个专用的目录,比如E:/AutoHotKey Scripts。
在那里新建一个AutoHotkey Script文件,尾缀是“.ahk”。比如“startupAHKscript.ahk”。然后再这个文件图标上点鼠标右键,选择“edit script”,Windows就会用SciTE打开这个脚本。
然后将以下文本拷贝粘贴到该文件中:
^1::SendUText("把时间当作朋友")^6::Send, this is a long string…^7::Send, wow!^8::Send, {Space}target="_blank"^9::Send, yourname@emailserver.com^0::Send, http://www.lixiaolai.com SendUText(targetTxt){ BlockInput On TempClipboard := ClipboardAll Clipboard = %targetTxt% Send ^v Sleep 100 Clipboard := TempClipboard TempClipboard = BlockInput Off Return}
保存并关闭该文件(双击图标即可执行该脚本)。然后,再创建一个该文件的快捷方式,将其拷贝到启动文件夹中,在Windows7中这个文件夹是:
C:/Users/你的用户名/AppData/Roaming/Microsoft/Windows/Start Menu/Programs/Startup
这样的话,每次Windows启动,都会自动加载这个脚本。于是,以后你随时可以按“Ctrl”加数字“0”这个快捷键,直接输出http://www.lixiaolai.com这个长长的字符串。如果想输出中文,就用SendUText()这个函数,请参见以上脚本中“^1::”后面的例子。
其实,我们平时必须反复输入的字符串数量并不多,大抵上只不过是自己的名字、地址、电话、email地址、以及一些常用的密码(有人会认为这个一定要小心)等等。给这些常用而又必须反复输入的字符串定义属于它们的快捷键,会大大提高日常的工作效率。至于如何触类旁通地使用AHK,那就需要认真阅读它的帮助文件了。
{ 20 comments… read them below or add one }
如果是在网页上输入名字、地址、电话、email地址、以及一些常用的密码,用智能填表是个不错的选择
感觉firefox还没有像傲游那样好的智能填表工具
follow me on twitter: lwzz
REPLY
lastpass插件……
follow me on twitter: conanrainy
REPLY
如果只是输入一些字符的话,可以使用输入法的自定义词功能。
follow me on twitter: icecrack
REPLY
SciTE 官方提供了单文件版
REPLY
我是用autoit,还是笑来空间看到了,花了一段的时间掌握,自己编写了一个实况软件,没想到下载突破过万。。可见学习的魅力所在。
REPLY
输入法的自定义词的确是个很好的方法
输入法每天都要用的吧
follow me on twitter: lwzz
REPLY
看来,无论从始于何处,关注效率者都会走到一起。很高兴读到笑来师对AutoHotkey的评论。
AutoHotkey 几乎是万能的,当然也包括快速输入。
而对于认为脚本不易上手的用户来说,有一款用AutoHotkey开发的成品,Texter,可专门处理快速输入。详情可自行搜索或参见 http://xbeta.info/texter-ahk.htm)
另外,如果追求效率,也可以通过剪贴板增强工具的 named paste 功能实现,比如 Ditto。可参见搜索官网或介绍文章 http://xbeta.info/ditto.htm#h-3.4 。
REPLY
ahk还是用在其他方面更合适吧,要输入某些固定字符串确实用输入法自定义词组就好了,更方便,搜狗和谷歌的都可以自定义词组的
小众软件之前倒有过AHK的一系列教程:http://www.appinn.com/ahk-fast-food-restaurant/
http://www.appinn.com/category/autohotkey/
REPLY
看起来很好用!
想问笑来老师,Mac系统下有没有相应的功能??
REPLY
笑来也用AHK啊,呵呵~~这个脚本编辑器真是很强大,没有做不到,只有想不到~~
REPLY
用剪贴板增强工具ditto的quick paste功能也可以实现快捷键输入常用字串。
REPLY
Ditto, an advanced clipboard manager with the feature you mentioned above. Just take a try!
REPLY
刚发现高级词汇精华500的Collins版和Merriam-Webster版两个入口进不去了。已经删除页面了吗?
REPLY
如果单单是实现这个长字符串的功能,输入法的确是个好办法。
搜狗输入法就支持自定义短语。例如定义xlbk http://www.lixiaolai.com
对于计算机“菜鸟”也很简单。
REPLY
密码管理试试KeePasshttp://keepass.info/
REPLY
@浪雪
我不认为fx没有好的只能填表功能扩展
像autofillform以及sxipper 我不觉得傲游的功能比它们强
@笑来
ahk不仅仅是快捷键输入字符串,还有热字符串之类的功能,比这些常规手段要强大得多
follow me on twitter: hitsmaxft
REPLY
to hitmaxft:
是啊,autohotkey可以做的事情很多。过去我一直用autoit来着(比如批量删除发表在校内的文章什么的)。现在正在把一些常用的脚本转化为autohotkey的。因为我希望只用一个软件,而不是好几个软件拼在一起……
follow me on twitter: xiaolai
REPLY
从笑来这里知道,autoit,其实autoit编写这个代码,我认为更简单,而且语法规范,以下我贴出autoit的源代码。
#include <ACN_String.au3>hotkeyset(“^0″,”sendm1″) ==> 定义快捷键,ctrl+0Func speedsend($x) ==> 发送信息的程序。 clipPut($x) blockiNput(1) $b=clipget() sendx($b,0) blockiNput(0)EndFuncFunc sendm1() ==> 设置好你要发送的内容 speedsend(“你好!”)EndFunc
While 1 Sleep(1000)WEnd
REPLY
#include <ACN_String.au3>
hotkeyset(“^5″,”sendm1″)
Func speedsend($x)
clipPut($x) blockiNput(1) $b=clipget() sendx($b,0) blockiNput(0)EndFuncFunc sendm1() speedsend(“你好!”)EndFuncWhile 1 Sleep(1000)WEnd
REPLY
to hitsmaxft
遨游的智能填表功能是很简单而且很强,挺实用的
AutoFill不能自动填,每次都要点击一下填表按钮,而且只能填单行……
Sxipper只能填你在个人资料里面设置好的内容,不能直接保存每个表单然后自己填写,而且也是不能自动填,要在右键菜单里面选。
上面这很重要的2点已经输给遨游的智能填表了,我在roboform很好用,功能很像遨游的填表,可惜的是需要装个软件,太麻烦了
follow me on twitter: lwzz
REPLY