You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

含循环与if语句的AutoHotkey脚本无法运行,求排查解决

解决AutoHotkey定时触发脚本失效问题

问题根源

你的脚本失效核心原因有两个:

  • FormatTime仅在循环启动前执行一次,time变量始终是初始值,循环里不会实时获取当前时间
  • 循环无延迟,会持续占用CPU且无法更新时间判断

修正后的脚本

^!p::
Loop
{
    ; 每次循环都重新获取当前分钟和时段(am/pm)
    FormatTime, currentTime, , mm tt
    Sleep, 1000  ; 每秒检查一次,降低CPU占用
    
    if (currentTime = "59 am")
    {
        action1()
        ; 等待1分钟避免重复触发
        Sleep, 60000
    }
    else if (currentTime = "45 am")
    {
        action2()
        Sleep, 60000
    }
    else if (currentTime = "03 am")
    {
        action3()
        Sleep, 60000
    }
}
Return

action3()
{
    MsgBox, test
}

action2()
{
    MsgBox, test2
}

action1()
{
    MsgBox, test3
}

Esc::ExitApp  ; 按Esc退出脚本

关键修改说明

  • 将FormatTime移到循环内部,确保每次循环都读取最新时间
  • 添加Sleep, 1000每秒检查一次,减少CPU消耗
  • 使用函数替代goto,代码逻辑更清晰
  • 执行完动作后添加60秒延迟,避免同一分钟内重复触发
  • 改用else if优化判断逻辑,减少不必要的条件检查

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 01:43:18