当按下取消按钮时,如何让我的VBScript取消进程?按下" OK"我希望VBScript能够打开一个新的InputBox
。我已经得到了这方面的工作,但我也想提供一个功能"取消"按钮。一个函数可以阻止整个VBScript打开任何其他MsgBox
或InputBox
。
我尝试过这样的事情:
Set shell = createobject("wscript.shell")
strtext = InputBox("text")
vbCancel
If vbCancel then
WScript.Quit
End if
答案 0 :(得分:5)
来自MSDN:
当提供helpfile和context时,会出现一个Help按钮 自动添加到对话框中。
如果用户单击“确定”或按ENTER键,则返回InputBox函数 文本框中的内容。 如果用户单击“取消”,则为该功能 返回零长度字符串(“”)。
上面的大胆部分并不完全正确。
用户可以通过多种方式取消InputBox对话框;通过关闭对话框,单击取消,或按 ESC , ALT + F4 ,依此类推。除了按⏎或单击确定之外的所有情况下,InputBox返回Empty
(未经初始化的变体,其数值为0表示数字,零长度字符串(“”)隐含的字符串),这意味着对话被驳回。
由于零长度字符串(“”)和Empty
变量之间存在隐式转换,因此查找MSDN建议的零长度字符串相等性并不总是一个合适的解决方案(例如逻辑,其中零长度字符串表示“使用默认值”,未取消)。
Dim retval
retval = InputBox("txt")
If IsEmpty(retval) Then
'cancelled
MsgBox "operation has been cancelled"
Else
'something has entered even zero-length
MsgBox retVal
End If