Autohotkey 在自动热键中获取变量类型

Autohotkey 在自动热键中获取变量类型,autohotkey,Autohotkey,为什么要确定类型 if delay is integer { MsgBox You set delay = %delay% seconds return } else { MsgBox "%delay%" is not a valid number. goSub, input } 但不是这个-这也允许非整数值,只要它大于0 if (delay is integer and delay > 0) { MsgBox You set delay

为什么要确定类型

if delay is integer
{
    MsgBox You set delay = %delay% seconds
    return
}
else
{
    MsgBox "%delay%" is not a valid number.
    goSub, input    
}
但不是这个-这也允许非整数值,只要它大于0

if (delay is integer and delay > 0)
{
    MsgBox You set delay = %delay% seconds
    return
}
else
{
    MsgBox "%delay%" is not a valid number.
    goSub, input    
}
这两个代码段都用于检查输入框的结果。这个脚本是为了帮助你在完成第一部分后下载并观看一部电影或其他东西

这是完整的脚本,以防有人感兴趣

delay := 120
help = Help - Unzip Auto Extractor`nF1: Help`nF2: Get Unzip Window`n(must be in foreground)`nF3: Set unpack delay (seconds, default 120)`nF4: Start or stop unpacking`nF5: Exit
MsgBox %help%
F1::
MsgBox %help%
return

F2::
WinGetTitle, title, A
MsgBox Selected window "%title%"
return

F3::
input:
InputBox, delay, Set extraction timeout in seconds..,Use numbers only,,,,,,,,%delay%
;InputBox, OutputVar [, Title, Prompt, HIDE, Width, Height, X, Y, Font, Timeout, Default] 
if delay is integer
{
    MsgBox You set delay = %delay% seconds
    return
}
else
{
    MsgBox "%delay%" is not a valid number.
    goSub, input    
}

#MaxThreadsPerHotkey 3
F4::
#MaxThreadsPerHotkey 1
if KeepWinZRunning
{
    KeepWinZRunning := 0
    return
}
else
{
KeepWinZRunning := 1
}
Loop
{   
    Loop %delay%
    {
        sleep 1000
        if not KeepWinZRunning
        {
            break   
        }
    }
    if not KeepWinZRunning
    {
        break           
    }   
    ControlSend,,{Enter},%title%    
}
KeepWinZRunning := 0
return

F5::
ExitApp
return

我认为这段来自autohotkey文档的引述将回答您的问题:

注意:表达式中不支持运算符“between”、“is”、“in”和“contains”

请注意,第二个示例对我来说效果很好,与此规则无关