在Autohotkey中获取变量类型

时间:2013-03-27 00:38:38

标签: 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 = %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

1 个答案:

答案 0 :(得分:0)

我认为来自autohotkey If var is [not] type文档的引用将回答您的问题:

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

请注意,无论此规则如何,第二个示例都适用于我。