输入框和案例,取消或关闭窗口

时间:2018-07-13 18:51:42

标签: autoit

我不熟悉自动处理,我想知道如何处理某些事情。代码就是这一行:

$input = InputBox("game : +/-", "Write a number:")

如果我在本节中输入数字,程序将正常运行。

如果我单击“取消”按钮,则会引发错误,因此我将其处理为:

    If (@error = 1) Then
        $End = True

我做得还好吗?

然后:

  • 如果我不输入任何值或按“取消”,请解释一下这里发生的情况以及到底发生了什么?
  • 如果我关闭窗户,会发生什么?我希望程序结束。

非常感谢!抱歉,如果我的问题很简单或没用,我会帮我很多忙

2 个答案:

答案 0 :(得分:0)

当您调用InputBox函数值时,它们将指示处理结果,这些值为:

  

成功:输入的字符串。

     

失败:“”(空字符串),并将@error标志设置为非零。

     

@错误:1 =按下了取消按钮。 2 =超时时间为   到达。 3 =输入框无法打开。这通常是由   错误的论点。 4 = InputBox无法显示在任何监视器上。 5   =无效的参数宽度(不含高度)或左侧(不含顶部)。

因此从本质上讲,这意味着如果它返回非空字符串(“成功”的情况),则不必担心@error。如果返回任何非零值,则@error的值将指示发生了什么。因此,如果发生错误而只想返回,则应使用以下if语句:

If (@error <> 0) Then
     $End = True

之所以起作用,是因为我们知道是否@error == 0表示输入框已成功并且已返回值,否则我们就知道它引发了上面列出的错误之一。我希望关闭窗口与按“取消”具有相同的效果,即@error == 1,但我尚未检查。

此外,如果您愿意,可以打开@error的值,并使用该值向用户显示“请输入值”或“命令超时”的错误消息,但是似乎超出了本例的要求。


以下是相关文档:https://www.autoitscript.com/autoit3/docs/functions/InputBox.htm

祝你好运!

答案 1 :(得分:0)

通过几个三元操作,您可以看到取消按钮设置了错误标志,并且它确实为= 1或== 1或= True(因为True的值为1)

$input = InputBox("game : +/-", "Write a number:")
$result = (@error == 1) ? 'cancel was pressed' : $input
msgbox(0, '' , $result = '' ? 'empty string' : $input)