用 autohotkey 编写自动控制程序
autohotkey 是一款免费的、windows平台下开放源代码的热键脚本语言。它能以简单的脚本语言(宏)来完成常见的鼠标、键盘甚至是文件管理等操作。
有了它,你可以
- 通过发送键盘键击和鼠标点击自动化几乎所有的操作。您可以手工编写宏或者使用宏录制器。
- 为键盘,游戏杆和鼠标创建热键。几乎任何按键、按钮或组合键都可以设置为热键。
- 在您键入缩写时扩展缩写。例如,键入 “btw” 能自动地生成 “by the way”。
- 创建自定义的数据输入表格、用户界面和菜单栏。详见图形用户界面。
- 重新映射您键盘、游戏杆和鼠标上的按键和按钮。
- 通过 winlirc 客户端脚本对手执遥控器的信号作出反应。
- 运行现有的 autoit v2 脚本,并用新功能增强它们。
- 将任何的脚本转换为 exe 文件,使其在没有安装 autohotkey 的计算机上也能运行。
官方网站 http://www.autohotkey.com/ 中文社区 http://ahk.5d6d.com/ autohotkey 中文社区提供汉化的手册,里面包含了详细的指令介绍。利用手册,新手也能很容易入门。 安装后程序会自动关联扩展名为 .ahk 的文本文件,双击 .ahk 文件即可运行脚本。也可以将写好的脚本编译为 exe 应用程序独立运行,配合 autohotkey 强大的键盘鼠标控制能力,可以被有心用于制作厉害的整人程序。
¶autohotkey 学习笔记
按下空格键,执行某个程序(打开某个网站)
space:: run notepad
space:: run www.google.com
多条语句顺序执行,使用 return结束
space::
run notepad
run www.google.com
return
组合键:# ^ ! +
# 表示 win 键,
#n 即 win+n
^ 表示 ctrl 键,
^n 即 ctrl+n
! 表示 alt 键,
!n 即 alt+n
+ 表示 shift 键,
+n 即 shift+n
^!+n,可以表示 ctrl+alt+shift+n
注释
;以英文分号起始的句子为脚本中的注释,不被执行
标签
标签名: ;可用于程序跳转
lable1:
lable2:
变量及赋值
a = 1 ;将数字1赋值给a,a为1
b = a ;将字符"a"赋值给b,b为"a",而不是数字1,对比下面一句
b = %a% ;将a的值1赋值给b,b为1,使用 = 赋值时,以 %% 区别变量
c := a ;同上,使用 := 赋值时,自动识别变量
数组
;定义数组:
array0 = element1
array1 = element2
array2 = element3
...
;引用数组 n=1
a := array%n% ;相当于c语言的 array\[n\]
条件语句
if (a > b) {
;条件为真
} else {
;条件为假
}
等待
sleep 1000 ;等一秒
定时器
settimer, run, 1000 ;每一秒从run标签执行一次
run:
;要执行的脚本
return
settimer, run, off ;停止执行run标签
模拟按键:
send
send ^c ;发送ctrl+c组合键
send abc ;连续发送abc三个键
send {enter} ;发送回车键
剪贴板
a := clipboard ;获取剪贴板的内容
clipboard := a ;将内容复制到剪贴板
clipboard = "" ;清空剪贴板
做了这么多笔记,来综合运用一下吧! 大家猜看看下面程序有什么非常无聊的用处 :d
array0 := "正在输入" array1 := "正在输入." array2 := "正在输入.." num = 3
^f:: count = 0 settimer, run, 1000 return
^d:: settimer, run, off return
run:
click sleep 100
str := array%count%
clipboard = %str%
count += 1
if(count >= num)
count = 0
send ^v
send {enter}
return
其实,autohotkey 可以帮助我们完成一些很烦琐的或者是重复性很强的操作。运用的好的话,它能胜任各种工作——我曾经用它完成一些很极端的工作: 制作连续数字图片(样式同一) 曾经有一次,一个朋友让我帮他完成128张数字图片的美化。如果是手工的话,你必须一张一张修改数字,然后按不同的文件名保存到指定目录,这样简单的事情做上128次,直接死掉算了。但是有了autohotkey,我只要录制一次鼠标/键盘操作,然后稍加修改,加上数字变量自动递增,它就帮我完成了剩下120多张图片的制作。
玩游戏按开火键按到手酸?
有了autohotkey,你只要按下设定好的启动键,接下来的由它帮你“按”住那个键就行啦 :) …