Autohotkey 无法在按键时退出循环(写入全局变量)

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

我正在创建一个简单的重复击键循环,该循环应该在按 ^F2 时中断。我尝试过调试但无法。当我按^F2时确实收到提示,表明它已注册。在另一次调试尝试中,似乎全局变量“checkbit”没有被更改。知道为什么吗?我不熟悉 AHK 变量如何工作...

global checkbit := 0

^F1::{
checkbit := 0
Loop{
    Send "{Enter}"
    Sleep 1000
    if checkbit = 1{
        msgbox "exiting loop"
        break
    }
}
return
}


^F2::{
    msgbox "exiting"
    checkbit := 1
    return
}

我尝试了更多调试,发现我的 ^F1 函数内的变量是本地变量,并且不读取全局变量。我该如何解决这个问题?我见过其他类似的线程显然有效,但我复制了它们并失败了

autohotkey
1个回答
0
投票

经过进一步研究,我发现了一个关于编写全局变量的有用线程...... https://www.autohotkey.com/boards/viewtopic.php?t=112514

global checkbit := 0

^F1::{
    global checkbit:=0
    Loop{
    Send "{Enter}"
    Sleep 1000
    if checkbit = 1{
        msgbox "exiting loop"
        break
    }
}
return
}


^F2::{
    global checkbit
    msgbox "exiting"
    checkbit := 1
    return
}

所以我们必须在函数中声明“global”来写入全局变量。现在可以了!

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