背景:由于工作需要常常需要做一些重复的工作,比如连续点击过一些游戏的剧情动画,这样节省下来的时间就可以多看几页代码和资料,而且也让游戏变得更放松身心。经过一点努力,发现开源项目AutoHotkey可以简单实现这个需求。
涉及工具:截止2023年8月3日,autohotkey的官方版本是v2.所以以下脚本的编写所涉及到的都是v2版本。
首先,autohotkey软件根据script脚本语言运行,模拟鼠标和键盘的操作。详细的解释可以参考官方的documentation。本文只涉及到简单的连点操作。
scripting language的基本格式:
{快捷键名字}::
{
快捷键功能,比如run notepad++.exe,启动记事本程序
}
再加上几个基本概念,比如进程,脚本可以通过WinExist()函数判断某个进程的存在,典型的进程就是网游,浏览器。WinActivate()相当于选中某个进程,也就是类似于用鼠标点击这个窗口作为当前的主窗口。Send命令可以模拟鼠标的点击和键盘。sleep则类似于休眠。
有了以上的命令就可以写一个简单的连点脚本,列出程序的主体框架:
+z:: ; 快捷键,+z的含义是shift+z。
{
While (WinExist("ahk_exe XXX.exe")){ ; 判断 XXX.exe进程是否存在
WinActivate "ahk_exe XXX.exe" ; 激活XXX.exe进程作为主窗口
if GetKeyState("+X") ; 按下 shift+x 暂停点击
KeyWait "+C", "D" ; 按下 shift+C键 恢复点击
Send "{Click}" ; 点击位置坐标,默认鼠标当前位置
Sleep(1500) ; 点击间隔时间 (ms)
}
}
^F3::Pause ;暂停脚本
^F4::Reload ;重载脚本
TIP:下载autohotkey后用管理员权限打开脚本可以让脚本在一些网游界面进行操作。
很简单的脚本,但是优点就是开源,不可能有乱七八糟的绑定广告。而且后期有空的话可以用scripting language完成更复杂的办公自动化操作。
祝大家吃好喝好!
参考链接: