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 ...
```
* 源码
```
;智能录⾳
js脚本开发
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 ...
```

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。