> 技术文档 > 《微信小程序挂机不求人!AutoHotKey脚本打造秘籍(附完整脚本)》_微信小程序挂机脚本

《微信小程序挂机不求人!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
  • 严格的变量规则:无需使用%符号包裹变量
  • 更严格的语法检查:减少潜在错误
特性 AutoHotkey 1.x AutoHotkey 2.x 语法 宽松,逗号分隔 严格,函数式语法 变量 通过 % 访问,未定义变量需注意 直接使用,自动初始化 对象系统 基础对象支持 类、继承、方法重载 错误处理 基本的 Try/Catch 增强的异常处理 兼容性 向后兼容旧脚本 不兼容 1.x,需迁移

微信小程序设置按键

我们以微信小程序为例,电脑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个小程序挂机脚本。