You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

求助:编写带开关的5分钟间隔自动点击AutoHotkey脚本

解决AutoHotkey定时点击脚本的切换与定时器问题

我来帮你搞定这个可切换的定时点击脚本!你之前困惑的Loop其实没必要用——SetTimer本身就专门用来处理定时重复任务,搭配一个开关变量就能轻松实现启停切换。下面是完整的可用代码,我会一步步给你解释:

; 定义需要点击的屏幕坐标
x := 600
y := 850
; 全局变量,控制脚本运行状态,初始为关闭
global isRunning := false

; Ctrl+J 作为切换开关(启动/停止定时点击)
^j::
{
    isRunning := !isRunning  ; 反转当前状态
    if (isRunning) {
        ToolTip, 定时点击已启动(5分钟一次)
        SetTimer, Clicker, 300000  ; 设置定时器,300000毫秒=5分钟,每隔5分钟执行Clicker函数
    } else {
        ToolTip, 定时点击已停止
        SetTimer, Clicker, Off  ; 关闭定时器
    }
    SetTimer, ToolTip, -1500  ; 1.5秒后自动关闭提示框
    return
}

; 点击操作的函数
Clicker() {
    global x, y
    MouseClick, Left, %x%, %y%  ; 点击指定坐标的左键
    ; 可选:添加点击后的提示,方便确认执行了点击
    ToolTip, 已执行点击操作
    SetTimer, ToolTip, -1000
}

; Esc键退出整个脚本
Esc::ExitApp

关键部分解释:

  • 为什么不用Loop?:SetTimer已经内置了重复执行的逻辑,只要设置好间隔时间,它会自动每隔指定时间调用一次函数,不需要你手动写Loop循环,这样代码更简洁也更稳定。
  • SetTimer的正确用法:启动时用SetTimer, 函数名, 间隔毫秒数,停止时用SetTimer, 函数名, Off,非常直观。
  • 切换开关实现:用全局变量isRunning来记录当前状态,每次按Ctrl+J就反转这个变量,根据状态决定是启动还是关闭定时器。
  • 退出脚本:添加了Esc键作为退出热键,方便你随时终止整个脚本运行。

你可以直接把这段代码保存为.ahk文件运行,按Ctrl+J切换启停,Esc键退出。如果需要调整点击坐标或者间隔时间,直接修改对应的变量值就行啦!

内容的提问来源于stack exchange,提问作者Ghrafkly

火山引擎 最新活动