微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

两个 AutoHotkey 循环以不同的时间间隔发送文本

如何解决两个 AutoHotkey 循环以不同的时间间隔发送文本

2021 年新年快乐,我是 AHK 的新手,我正在尝试获取脚本,将文本发送到窗口,我想要 2 个不同的时间间隔。

一个循环必须每 14.5 秒发送一个单词 第二个循环必须每 30.5 秒发送三个单词(每个单词后跟 Enter 键)。

这就是我所拥有的。

#SingleInstance Force

F7::
Toggle := !Toggle
SetTimer,Loop1,% (Toggle) ? 14500 : "Off"
SetTimer,Loop2,% (Toggle) ? 300500 : "Off"
return

F5::Reload

Loop1:
sendinput .word1{Enter}
return

Loop2:
sendinput .word2{Enter}
sendinput .word3{Enter}
sendinput .word4{Enter}
return

我想要的脚本是,如果我按下 F7,它就会启动,并且两个循环同时执行,将 4 个单词发送到活动窗口,然后每个循环等待各自的时间延迟并重复,直到我再次按 F7 F5 重新加载或完全停止。

问题是,它没有按预期执行,它实际上首先等待“计时器”然后执行,我怎么能做到这一点,一旦我按下 F7,它就会发送 4 个单词,然后输入,然后开始定时器?

我什至尝试过使用 SetTimer ......? 0 ......

但它只运行一次,然后再也不运行了。

任何帮助将不胜感激。

干杯

JL

解决方法

为什么不在启动计时器之前调用 gosub

#SingleInstance Force

F7::
Toggle := !Toggle
if(Toggle){
    gosub Loop1
    gosub Loop2
}
SetTimer,Loop1,% (Toggle) ? 14500 : "Off"
SetTimer,Loop2,% (Toggle) ? 300500 : "Off"
return

F5::Reload

Loop1:
SendInput .word1{Enter}
return

Loop2:
SendInput .word2{Enter}
SendInput .word3{Enter}
SendInput .word4{Enter}
return

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。