利用批处理生成各种提示框
利用批处理生成各种提示框
[code]
@echo off
if "%1" == "h" goto begin
mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin
start mshta vbscript:msgbox(" 测试提示框之一 ",,"提示")(window.close)
ping 0 /n 3 >nul
taskkill /f /im mshta.exe >nul
start mshta vbscript:msgbox("测试提示框之二(此提示框能保持前端显示) ",vbSystemModal,"提
示")(window.close)
ping 0 /n 6 >nul
taskkill /f /im mshta.exe >nul
start mshta vbscript:msgbox("测试提示框之三 ",vbInformation,"提示")(window.close)
ping 0 /n 6 >nul
taskkill /f /im mshta.exe >nul
start mshta vbscript:msgbox("测试提示框之四 ",VbExclamation,"警告!")(window.close)
ping 0 /n 6 >nul
taskkill /f /im mshta.exe >nul
start mshta vbscript:msgbox("测试提示框之五 ",VbQuestion,"询问?")(window.close)
ping 0 /n 6 >nul
taskkill /f /im mshta.exe >nul
start mshta vbscript:msgbox("测试提示框之六 ",VbCritical,"错误!")(window.close)
ping 0 /n 6 >nul
taskkill /f /im mshta.exe >nul
mshta vbscript:CreateObject("Wscript.Shell").popup("测试提示框之七(6秒后自动退出)",6,"提示
",vbOKOnly)(window.close)
mshta vbscript:msgbox("测试提示框之八(请点击任意一个按扭退出)",vbOKCancel,"选择")
(window.close)
mshta vbscript:msgbox("测试提示框之九(请点击任意一个按扭退出)",vbRetryCancel,"选择")
(window.close)
mshta vbscript:msgbox("测试提示框之十(请点击任意一个按扭退出)",vbAbortRetryIgnore,"选择")
(window.close)
mshta vbscript:msgbox("测试提示框之十一 (请点击任意一个按扭退出)",vbYesNo,"选择")
(window.close)
mshta vbscript:msgbox("测试提示框之十二(请点击任意一个按扭退出)",3,"选择")(window.close)
msg %username% /time:5 "全部完成,5秒后自动退出!"
exit
[/code]
弹出标题为“选择”的提示框,均要作出选择才能显示下一个提示框,但意义不大,因为在此没有判断语
句。如果想增加判断语句,可以用临时文件方式,如下例:
[code]
@echo off
set b=
echo Wsh.Echo MsgBox("测试提示框之十二 ",vbYesNoCancel,"选择") >tmp.vbs
for /f %%a in ('cscript tmp.vbs //nologo //e:vbscript') do set "b=%%a"
if %b%==6 goto Yes
if %b%==7 goto No
if %b%==2 goto Cancel
del /q tmp.vbs
exit
:Yes
echo 你选择了“是”
echo.
pause>nul
goto end
:No
echo 你选择了“否”
echo.
pause>nul
goto end
:Cancel
echo 你选择了“取消”
echo.
pause>nul
goto end
:end
del /q tmp.vbs
exit
[/code]
经测试各种按扭的对应的数值如下:
[code]
OK(确定)=1
Cancel(取消)=2
Abort(终止)=3
Retry(重试)=4
Ignore(忽略)=5
Yes(是)=6
No(否)=7
[/code]
如果想获取在对话框中输入的内容,可以用以下实例:
[code]
@echo off
echo Wsh.Echo InputBox("请在下面输入字符:", "提示", "abc") >"%temp%\tmp.vbs"
for /f %%a in ('cscript "%temp%\tmp.vbs" //nologo //e:vbscript') do set "b=%%a"
if %b%=="" goto end
echo %b%
pause >nul
:end
del /q "%temp%\tmp.vbs"
exit
[/code]
MsgBox 常数说明(有时在提示框中可以用其值来代替常数名,如用 3 代替 vbYesNoCancel)
[code]
常数 值 描述
vbOKOnly 0 只显示确定按钮。
vbOKCancel 1 显示确定和取消按钮。
vbAbortRetryIgnore 2 显示终止、重试和忽略按钮。
vbYesNoCancel 3 显示是、否和取消按钮。
vbYesNo 4 显示是和否按钮。
vbRetryCancel 5 显示重试和取消按钮。
vbCritical 16 显示临界消息图标。
vbQuestion 32 显示询问消息图标。
vbExclamation 48 显示警告消息图标。
vbInformation 64 显示提示消息图标。
vbDefaultButton1 0 第一个按钮是默认按钮。
vbDefaultButton2 256 第二个按钮是默认按钮。
vbDefaultButton3 512 第三个按钮是默认按钮。
vbDefaultButton4 768 第四个按钮是默认按钮。
vbApplicationModal 0 应用程序模式。用户必须响应消息框,才能继续在当前应用程序中
工作。
vbSystemModal 4096 前端显示