演绎段氏"凌波微步" AutoHotkey 入门教程
在QQ群里看到自由风在学Autohotkey,于是在网上找一下相关的文章,现转给大家学习一下:本文提到的AutoHotkey和《[url=http://www.pconline.com.cn/pcedu/soft/gj/sys/0607/830408.html][color=#3366cc]用AutoIt增强微软内存释放工具Empty[/color][/url]》都需要那么一点点编程基础。说是编程,其实和说英语没什么区别,只不过是被“格式化”过的英语。相信聪明的你能轻松克服困难,顺利地使用上这些让你爽到飘起来的软件——请允许我称它为段氏的“凌波微步”。
[b]正文[/b]
写一篇最最傻瓜的0级入门教程吧。
[b]一、何为AutoHotkey[/b]
AutoHotkey是一个小工具软件,可以简化你的重复性工作。
比如要登录某论坛,你只要按一个键,AutoHotkey就会替你打开IE(推荐使用FireFox、Opera或Maxthon),输入网址,输入用户名和密码,回车。
你只要有想像力,它可以完成更多工作。(到xbeta的博客去看看他的《[url=http://blog.sina.com.cn/u/46dac66f010005cf][color=#3366cc]AutoHotkey|win run加它更方便[/color][/url]》)
[b]二、下载及安装[/b]
[table=429,#81b520][tr][td=1,1,108][b] 软件名称:[/b][/td][td=1,1,269][align=left] AutoHotkey[/align][/td][/tr][tr][td][b] 软件版本:[/b][/td][td][align=left] 1.0.44.12[/align][/td][/tr][tr][td][b] 软件大小:[/b][/td][td][align=left] 1800KB[/align][/td][/tr][tr][td][b] 软件授权:[/b][/td][td][align=left] 共享[/align][/td][/tr][tr][td][b] 适用平台:[/b][/td][td][align=left] Windows 98/Me/2000/XP[/align][/td][/tr][tr][td][b] 下载地址:[/b][/td][td][align=left] [url=http://dl.pconline.com.cn/html_2/1/65/id=39876&pn=0.html][color=#3366cc]点击这里下载[/color][/url][/align][/td][/tr][/table]
安装:按提示操作即可。xbeta习惯上装在 d:\program files\AutoHotkey
第1屏是欢迎;点Next。
第2屏是版权声明;点I Agree。
第3屏是安装内容:如下图。建议选中前2项,不选第3项。
[align=center][img]http://www.pconline.com.cn/pcedu/soft/gj/others/0609/pic/060921_a1.jpg[/img][/align][align=center]图1 选择需要安装的组件[/align] 第4屏是安装目录:xbeta的习惯是 D:\Program Files\AutoHotkey 可以看到,仅需要2.1MB的空间。强大的软件并不需要庞大的体积,能把软件做小是作者功力的体现,是对用户尊重的体现。
第5屏是安装成功提示:是否看readme。这个readme其实是它的帮助文件,写得很细。有耐心的就认真拜读,想成高手的必须要研读。(部分中文译本见[url=http://yonken.yourfreewebspace.com/][color=#3366cc]这里[/color][/url])
[table=98%][tr][td]
[b]三、应用例1[/b]
如下图,打开你的文本编辑器(notepad、或gVIM),新建一个文件,把下两行内容复制进去。先保存到一个地方,比如 D:\Program Files\AutoHotkey\my\new.ahk
[align=center][img]http://www.pconline.com.cn/pcedu/soft/gj/others/0609/pic/060921_a2.jpg[/img][/align][align=center]图2 脚本内容[/align] msgbox, 这是我的第一个AutoHotkey脚本 `n 我支持免费软件尊重版权
run, [url=http://blog.sina.com.cn/m/xbeta][color=#3366cc]http://blog.sina.com.cn/m/xbeta[/color][/url]
然后,就可以双击new.ahk看到效果了:
[align=center][img]http://www.pconline.com.cn/pcedu/soft/gj/others/0609/pic/060921_a3.jpg[/img][/align][align=center]图3 脚本的效果演示[/align] 先弹出如下提醒。确认后,就打开浏览器,来到了善用佳软blog。
解释一下:
所谓脚本,其实就是一个txt文件。
第1句:msgbox是一个命令(或称为函数),AutoHotkey见到它,就知道要弹出一个消息窗口了。后面的“这是我的……版权”是参数,在这里就是弹出消息的文字。其中的`n表示换行。中间用半角逗号分隔。
第2句:类似,函数是run,就是运行。后面的参数就是本blog网址。也就是说,AutoHotkey可以run一个程序,也可以run文档名(如 d:\freeware-list.txt),也可以run网址。
[/td][/tr][/table] 四、应用例2
把以下内容复制到new.ahk中
#0::
msgbox, 这是我的第一个AutoHotkey脚本 `n 我支持免费软件尊重版权
run, [url=http://blog.sina.com.cn/m/xbeta]http://blog.sina.com.cn/m/xbeta[/url]
return
#1::
run, [url=http://mail.163.com/]http://mail.163.com[/url]
WinActivate, Maxthon ;;防止窗口不激活
winwait, 网易 ;;等待网页加载成功(至少title显示出来)
sleep, 500 ;;保险起见,再等0.5秒(视网速)
send, myid{tab}password{enter};;模拟键入用户名、密码、回车
return
再运行……没反应了?
因为刚才的脚本定义了2个热键,一是“win+0”,二是“win+1”,分别调用两段脚本,即分别访问善用佳软和登录163信箱。
从上面还可以看到几个新函数名称,详情见AutoHotkey的help。
还有,半角分号后面是注释,用于帮助日后理解ahk文件,并不执行。
五、后记
0级教程就写到这里吧。
再进步,就需要多动手,多读help中的函数介绍了。
隆重推荐《自动化操作轻松入门系列》文章,作者yonken,yonken的主页,致力于传播AutoHotkey和AutoIt,并精心翻译了大量原始文档(赞)。请访问他的主页并留言支持他。
补:xbeta是用gVIM编辑ahk文件的,高亮效果如下:
[img]http://www.pconline.com.cn/pcedu/soft/gj/others/0609/pic/060921_a4.jpg[/img]
图4 用gVIM编辑ahk文件的高亮效果
[[i] 本帖最后由 luoyang565 于 2007-11-21 16:44 编辑 [/i]] AutoHotKey使用教程-----磁盘管理
[table][tr][td][b][size=3][color=#0000ff]Drive[/color][/size][/b]函数用来弹出或者收回光驱,或者设置光驱的卷标。函数格式如下:
[size=12pt]Drive, Sub-command [, Drive , Value][/size]
[b]Label, Drive [, NewLabel][/b][b]:修改磁盘驱动器的卷标,磁盘符支持两种格式:[/b][b]c:[/b][b]和[/b][b]c:/[/b][b]均可。例如:[/b][size=12pt]Drive, Label, C:, Seagate200[/size]
[b]Lock, Drive[/b]:锁定某个磁盘。如果磁盘不存在或者不支持锁定,ErrorLevel值为1,否则值为0。例如:Drive, Lock, D:
[b]Unlock, Drive[/b]:解锁某个磁盘,如果某个磁盘被锁定多次,那么就需要多次解锁才可以。所以没有办法判定某个磁盘当前是否被锁定。例子:Drive, Unlock, D:
[b]Eject [, Drive, 1][/b]:弹出或者收回光驱。如果光驱当前就处于这个状态,再去弹出或者收回光驱,ErrorLevel设置为0。
Drive, Eject,, 0-----弹出光驱
Drive, Eject,, 1-----收回光驱
请看下面的例子,弹出和收回光驱:
[align=left][size=12pt]#c::[/size][/align]
[align=left][size=12pt]Drive, Eject[/size][/align]
[align=left][size=12pt]; If the command completed quickly, the tray was probably already ejected.[/size][/align]
[align=left][size=12pt]; In that case, retract it:[/size][/align]
[align=left][size=12pt]if A_TimeSinceThisHotkey < 1000
; Adjust this time if needed.[/size][/align]
[align=left][size=12pt]
Drive, Eject,, 1[/size][/align]
[size=12pt]Return[/size]
[size=12pt]
[/size][size=3][color=#0000ff][b]DriveGe[/b][/color][/size]t函数用来获得磁盘不同种类的信息。函数格式如下:
[align=left][size=12pt]DriveGet, OutputVar, Cmd [, Value][/size][/align]
[table][tr][td=1,1,103]OutputVar
[/td][td=1,1,465][size=12pt]存储cmd命令的结果[/size]
[/td][/tr][tr][td=1,1,103]Cmd, Value
[/td][td=1,1,465][size=12pt]详细信息请参考下文[/size]
[/td][/tr][/table][b]List [, Type][/b][b]:[/b][b]返回值是一个字符串,存储在[/b]OutputVar变量中,每个字符都是磁盘的盘符,例如ACDE
[b]Capacity (or Cap), Path[/b][b]:[/b][b]返回磁盘的大小[/b]
[b]Filesystem (or FS), Drive[/b][b]:[/b][b]返回磁盘类型[/b]
[b]Label, Drive[/b][b]:[/b][b]返回磁盘的卷标[/b]
[b]Serial, Drive[/b][b]:[/b][b]返回磁盘的卷号,十进制。[/b]
[b]Type, Path[/b]:返回路径的磁盘类型,返回值为:Unknown, Removable, Fixed, Network, CDROM, RAMDisk
[b]Status, Path[/b]:返回路径的状态,返回值为:Unknown、Ready、NotReady、Invalid
[b]StatusCD [, Drive][/b]:返回当前光驱的状态,如:open,playing
请参考下面的脚本:
; This is a working example script.
FileSelectFolder, folder, , 3, Pick a drive to analyze:
if folder =
return
DriveGet, list, list
DriveGet, cap, capacity, %folder%
DrivespaceFree, free, %folder%
DriveGet, fs, fs, %folder%
DriveGet, label, label, %folder%
DriveGet, serial, serial, %folder%
DriveGet, type, type, %folder%
DriveGet, status, status, %folder%
MsgBox All Drives: %list%`nSelected Drive: %folder%`nDrive Type: %type%`nStatus: %status%`nCapacity: %cap% M`nFree Space: %free% M`nFilesystem: %fs%`nVolume Label: %label%`nSerial Number: %serial%
[size=3][color=#0000ff][b]DriveSpaceFree[/b][/color][/size]函数用来获得磁盘剩余空间大小,单位是MB。函数格式如下:
[size=12pt]DriveSpaceFree, OutputVar, Path[/size]
[table][tr][td=1,1,79]OutputVar
[/td][td=1,1,489]该变量用来存储结果,四舍五入。
[/td][/tr][tr][td=1,1,79]path
[/td][td=1,1,489]驱动器的路径
[/td][/tr][/table]
请参考下面的脚本例子:
[size=12pt]DriveSpaceFree, FreeSpace, c:\[/size]
[size=12pt]MsgBox, FreeSpace = %FreeSpace%[/size]
[/td][/tr][/table]
[[i] 本帖最后由 luoyang565 于 2007-11-21 17:15 编辑 [/i]] :D: 不错的东西 呵呵 不错啊
页:
[1]
