windows自动化脚本语言AutoHotKey
最近闲暇时间,思考着如何控制自己的电脑,自动执行任务。
我提出了一个开机启动控制的任务:
2分钟后重启电脑;
启动应用程序[QQ,VSCode,electron];
打开文件夹;
启动Chrome,访问[baidu,hao123]
提出需求后,我立马想到用nodejs编写脚本执行,然而是感觉写起来很费力,就琢磨着有没有跟高效的方式
为此,我搜集网上的解决方案,汇总如下:
1. 极速点击虎
2. 按键精灵
3. AutoHotKey
极速点击虎是开发的动作模拟工具,虽然能模拟上网,鼠标点击但是,操作太繁琐,而且终究是工具,不能编程。
与此相比,按键精灵就很强大。不仅可以进行各种模拟动作,还能录制整个动作,但是唯一的缺陷就是,生成的脚本只能使用它的内置的工具解析。
知道最后,我找到了AutoHotKey,很是满意。因为不仅能模拟windows上的各种操作,还能编译生成exe可执行文件,满足了我想要实现和编程语言的集成自动化脚本的需求。
以下是我的第一个AutoHotKey脚本 - 智能录音:
1. 功能需求:
```
启动脚本后,自动打开录音机,录制10S后,暂停5S,继续录制6S,重命名后剪切到指定目录,关闭所有操作窗体。
```
2. 语言描述
```
{
操作环境:win10,
任务:录音,
参数:[
暂停:{ 启用:是, 开启时间:录制5秒后, 持续时长:6秒 },
录制:{ 录制时长:10秒 },
重命名:xxx,
保存位置:d:\record\2020-8-1\xxx.m4a
],
触发:启动后立即执行
}
```
3. 程序实现
* 运行环境
```
{
运行系统:win10,
开发语言:AutoHotKey,
输入法且为搜狗中文输入
}
```
* 代码描述
```
send["win","luyinj","Space","Enter"]; // Win搜索进入录音机
sleep, 3000; // 休眠3秒
send["Ctrl+R"]; // 录制(发送录制快捷键)
sleep, 6000;
send["Alt+P"]; // 暂停
sleep, 6000;
send["Alt+P"];
sleep, 10000; // 继续录制10秒
send["Enter"]; // 保存录制
sleep, 1000;
send["Alt+E"];
sleep, 500;
send["luyin1","Shift","sss","Enter"]; // 重命名为"录音sss"
sleep, 500;
send["Alt+M"] // 打开文件自动保存位置
sleep, 500;
send["{Down 3}"];
send["Enter"];
sleep, 4000,
send["Ctrl+x"]
runWait, explorer d:\record\2020-8-1\ // 移动文件指定位置
sleep, 3000,
send["Ctrl+v"]
MsgBox complete reocrd ...
```
* 源码
```
;智能录音
Send {LWin} ;搜索进入录音机(中文输入法)
Sleep, 500
Send {l}{u}{y}{i}{n}{j}{Space}{Enter}
Sleep, 3000
Send {LCtrl} {R} ;录制
Sleep, 6000 ;5秒后暂停
Send !{P} ;暂停6秒
Sleep, 6000
Send !{P}
Sleep, 11000 ;继续录制10秒
Send {Enter} ;保存录制
Sleep, 1000
Send !{E} ;重命名为 录音sss
Sleep, 500
Send {l}{u}{y}{i}{n}{1}{LShift}{s 3}{LShift} {Enter}
Sleep, 500
Send !{M} ;打开文件位置
Sleep, 500
Send {Down 3}
Send {Enter}
Sleep, 4000
Send ^{x} ;剪切到 G:\holiday\svn-server\holiday\works\assistant\test
RunWait, explorer G:\holiday\svn-server\holiday\works\assistant\test
Sleep, 3000
Send ^{v}
MsgBox complete record ...
```

浙公网安备 33010602011771号