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 ...
            ```

 

posted @ 2020-08-11 08:45  kanq  阅读(859)  评论(0)    收藏  举报