Autohotkey v2 循环问题

问题描述 投票:0回答:1

嗨,我正在疯狂地尝试编写这段代码,如果有人可以帮助我,我会很高兴? 基本上我需要一个在 Mythos 应用程序中工作的代码,它只在该应用程序中工作,当用户单击字母 F1 时,它应该开始运行循环,当他单击 F2 时,它会停止循环,也希望它不能在外部工作Mythos 窗口(最小化),但它一直在外面做,我对此感到疯狂。

这是代码:

#HotIf WinActive("Mythos")

*n::
Loop {
     Send "{Click}" 
     Sleep 25
     Send "SC002" 
     Sleep 25
     Send "{Click}" 
     Sleep 25
}

*m::Suspend

#HotIf
autohotkey
1个回答
0
投票

您当前的代码使用

n
启动循环并使用
m
暂停脚本,而不是
F1
/
F2
。暂停脚本不会终止循环,因此一旦您再次按
m
重新启动脚本,循环将从中断处继续。您可以创建一个切换来代替使用挂起:

#Requires AutoHotkey v2
loopToggle := 0

#HotIf WinActive("Mythos")
*n:: {
    global loopToggle := 1
    While loopToggle {
        Send "{Click}" 
        Sleep 25
        Send "SC002" 
        Sleep 25
        Send "{Click}" 
        Sleep 25
    }
}

#HotIf loopToggle
*m::global loopToggle := 0

请注意,我还为第二个热键使用了单独的

#HotIf
。这是因为,如果您的循环意外地取消了 Mythos 的焦点,您可能无法停止循环(只有当 Mythos 处于活动状态时,
m
键才会激活)。

© www.soinside.com 2019 - 2024. All rights reserved.