《微信小程序挂机不求人!AutoHotKey脚本打造秘籍(附完整脚本)》_微信小程序挂机脚本
注明原文:https://zhangxiaofan.blog.csdn.net/article/details/148512659
目录
目标
下载
微信小程序设置按键
使用
语法学习(可跳过)
查看目标窗口信息
新建.ahk格式脚本
实现代码
运行脚本
编译脚本为exe
效果展示
任务底部弹框
按F1执行
自动执行
总结
目标
假如我们经常玩一个微信小游戏,但是重复操作太多,希望有1个脚本能自动帮我们完成按键,例如每间隔1秒,触摸或点击一下指定的3个区域,小程序可以把这3个区域设置指定的按键,假设是【A】【D】【W】。
下载
AutoHotKey官方GitHub地址:
https://github.com/AutoHotkey/AutoHotkey
我们这里使用2.x版本,主要区别是:
- 函数语法变化:使用
FunctionName() { ... }
代替FunctionName:
- 字符串使用单引号或双引号:
Send \'a\'
代替Send, a
- 严格的变量规则:无需使用
%
符号包裹变量 - 更严格的语法检查:减少潜在错误
%
访问,未定义变量需注意Try/Catch
微信小程序设置按键
我们以微信小程序为例,电脑PC登录微信后,可以打开微信小程序,然后点击右上角设置,可以对指定区域设置指定的按键,例如【A】【D】【W】三个按键
使用
语法学习(可跳过)
对语法不了解的,可以直接打开,AHK,有帮助文档:
查看目标窗口信息
例如小程序打开后,AHK代码中需要一些窗口信息,我们可以用 Windows SPY工具来看:
例如:
ahk_class Chrome_WidgetWin_0
ahk_exe WeChatAppEx.exe
ahk_pid 7332
ahk_id 1708296
新建.ahk格式脚本
我们选择v2的版本,然后点击编辑
实现代码
小程序自动按键,AHK的完整代码如下:
#Requires AutoHotkey v2.0Persistent; ===== 用户配置区域 =====targetWindowTitle := \"xxxxxxx\" ; 需要匹配的窗口标题(部分匹配即可,支持通配符*)targetWindowExe := \"WeChatAppEx.exe\" ; 结合targetWindowTitle更精确的定位目标窗口keySequence := [\"A\", \"D\", \"W\"] ; 按键循环顺序pressInterval := 1000 ; 按键间隔(毫秒); ========================; ===== 全局状态变量 =====isRunning := false ; 脚本运行状态currentIndex := 1 ; 当前按键索引; ====================; ===== 任务栏弹框提示-设置时间 =====; 自定义带持续时间的托盘提示; @param title - 提示标题; @param message - 提示内容; @param icon - 图标类型(1=信息,2=警告,3=错误); @param duration - 显示时间(毫秒,默认3000)TrayTipTimed(title, message, icon, duration := 3000) { TrayTip title, message, icon SetTimer () => TrayTip(), -duration}; ====================; 主定时器函数PressKey() { global currentIndex, keySequence ; 查找准确的目标窗口 winTitle := targetWindowTitle \" ahk_exe \" targetWindowExe win := WinExist(winTitle) ; 目标窗口存在 if win { ; 激活窗口并发送按键 WinActivate win ; 获取当前要按的键 currentKey := keySequence[currentIndex] ; 发送按键(带适当延迟确保窗口响应) SetKeyDelay 50 Send \"{\" currentKey \" down}\" ; 按下 Sleep 10 Send \"{\" currentKey \" up}\" ; 释放 ; 更新索引(循环) currentIndex := (currentIndex = keySequence.Length) ? 1 : currentIndex + 1 ; 在目标窗口显示状态提示 ToolTip \"按键: \" currentKey, 10, 10 SetTimer () => ToolTip(), -1000 ; 1秒后消失 } else { TrayTipTimed \"未找到窗口\", \"未找到窗口【\" targetWindowTitle \"】\", 3 , 3000 }}; 启动/暂停热键:F1F1:: { global isRunning isRunning := !isRunning ; 切换状态 if isRunning { SetTimer PressKey, pressInterval ; 按配置间隔执行 TrayTipTimed \"脚本已启用\", \"正在向【\" targetWindowTitle \"】发送按键\", 1 , 3000 } else { SetTimer PressKey, 0 ; 停止定时器 TrayTipTimed \"脚本已暂停\", \"脚本已暂停,按F1重新启用\", 1 , 3000 }}; 退出脚本热键:ESCESC::ExitApp; ====== 初始提示 ======; 1:表示弹框的图标为提示类型TrayTipTimed \"自定义的按键脚本已加载\", \"目标窗口: \" targetWindowTitle \"`n按 F1 启动/暂停 按 ESC 退出\", 1 , 10000; ====================
运行脚本
右键脚本,点击Run script
编译脚本为exe
我们也可以写好的脚本做成exe文件,点击Compile Script
然后点击convert即可
效果展示
任务底部弹框
首次运行,电脑桌面右下角,任务栏会有1个弹框
按F1执行
执行后也有弹框
自动执行
自动执行后,可以看到小程序在间隔执行按钮,且有提示:
总结
AutoHotkey 是一款免费开源的自动化脚本语言,专为 Windows 系统设计,可通过简单的脚本实现复杂的键盘、鼠标自动化操作。这里我们只是简单的用到了部分语法,就实现了1个小程序挂机脚本。