AutoHotKey是个好东西

来源:互联网 发布:做淘宝亏本冲销量 编辑:程序博客网 时间:2021/05/15 18:56

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 }

1浪雪 2009/08/06 at 12:41

如果是在网页上输入名字、地址、电话、email地址、以及一些常用的密码,用智能填表是个不错的选择
感觉firefox还没有像傲游那样好的智能填表工具

follow me on twitter: lwzz

REPLY

2conanrainy 2010/04/02 at 18:32

lastpass插件……

follow me on twitter: conanrainy

REPLY

3 2009/08/06 at 12:42

如果只是输入一些字符的话,可以使用输入法的自定义词功能。

follow me on twitter: icecrack

REPLY

4DFS 2009/08/06 at 12:42

SciTE 官方提供了单文件版

REPLY

5日月山人 2009/08/06 at 12:52

我是用autoit,还是笑来空间看到了,花了一段的时间掌握,自己编写了一个实况软件,没想到下载突破过万。。可见学习的魅力所在。

REPLY

6浪雪 2009/08/06 at 12:58

输入法的自定义词的确是个很好的方法
输入法每天都要用的吧

follow me on twitter: lwzz

REPLY

7善用佳软 2009/08/06 at 13:39

看来,无论从始于何处,关注效率者都会走到一起。很高兴读到笑来师对AutoHotkey的评论。
AutoHotkey 几乎是万能的,当然也包括快速输入。
而对于认为脚本不易上手的用户来说,有一款用AutoHotkey开发的成品,Texter,可专门处理快速输入。详情可自行搜索或参见 http://xbeta.info/texter-ahk.htm)
另外,如果追求效率,也可以通过剪贴板增强工具的 named paste 功能实现,比如 Ditto。可参见搜索官网或介绍文章 http://xbeta.info/ditto.htm#h-3.4  。

REPLY

8400 2009/08/06 at 14:08

ahk还是用在其他方面更合适吧,要输入某些固定字符串确实用输入法自定义词组就好了,更方便,搜狗和谷歌的都可以自定义词组的
小众软件之前倒有过AHK的一系列教程:http://www.appinn.com/ahk-fast-food-restaurant/
http://www.appinn.com/category/autohotkey/

REPLY

9Stephy 2009/08/06 at 16:55

看起来很好用!
想问笑来老师,Mac系统下有没有相应的功能??

REPLY

10Rye 2009/08/06 at 18:37

笑来也用AHK啊,呵呵~~这个脚本编辑器真是很强大,没有做不到,只有想不到~~

REPLY

11yimin 2009/08/06 at 21:21

用剪贴板增强工具ditto的quick paste功能也可以实现快捷键输入常用字串。

REPLY

12LeoJoe 2009/08/06 at 21:56

Ditto, an advanced clipboard manager with the feature you mentioned above. Just take a try!

REPLY

13yy 2009/08/07 at 01:47

刚发现高级词汇精华500的Collins版和Merriam-Webster版两个入口进不去了。已经删除页面了吗?

REPLY

14viphhs 2009/08/07 at 10:39

如果单单是实现这个长字符串的功能,输入法的确是个好办法。
搜狗输入法就支持自定义短语。例如定义xlbk http://www.lixiaolai.com
对于计算机“菜鸟”也很简单。

REPLY

15boring 2009/08/07 at 10:50

密码管理试试KeePasshttp://keepass.info/

REPLY

16hitsmaxft 2009/08/07 at 14:27

@浪雪
我不认为fx没有好的只能填表功能扩展
像autofillform以及sxipper 我不觉得傲游的功能比它们强
 
@笑来
ahk不仅仅是快捷键输入字符串,还有热字符串之类的功能,比这些常规手段要强大得多
 

follow me on twitter: hitsmaxft

REPLY

17李笑来 2009/08/07 at 14:45

to hitmaxft:
是啊,autohotkey可以做的事情很多。过去我一直用autoit来着(比如批量删除发表在校内的文章什么的)。现在正在把一些常用的脚本转化为autohotkey的。因为我希望只用一个软件,而不是好几个软件拼在一起……

follow me on twitter: xiaolai

REPLY

18日月山人 2009/08/09 at 16:23

 从笑来这里知道,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

19日月山人 2009/08/09 at 16:24

#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

20浪雪 2009/08/09 at 23:40

to hitsmaxft
遨游的智能填表功能是很简单而且很强,挺实用的
AutoFill不能自动填,每次都要点击一下填表按钮,而且只能填单行……
Sxipper只能填你在个人资料里面设置好的内容,不能直接保存每个表单然后自己填写,而且也是不能自动填,要在右键菜单里面选。
上面这很重要的2点已经输给遨游的智能填表了,我在roboform很好用,功能很像遨游的填表,可惜的是需要装个软件,太麻烦了
 

follow me on twitter: lwzz

REPLY

原创粉丝点击