您的位置:首页 > 其它

批处理弹出对话框

2013-05-24 14:09 267 查看
利用批处理生成各种提示框

@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


弹出标题为“选择”的提示框,均要作出选择才能显示下一个提示框,但意义不大,因为在此没有判断语
句。如果想增加判断语句,可以用临时文件方式,如下例:

@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


经测试各种按扭的对应的数值如下:

OK(确定)=1

Cancel(取消)=2

Abort(终止)=3

Retry(重试)=4

Ignore(忽略)=5

Yes(是)=6

No(否)=7


如果想获取在对话框中输入的内容,可以用以下实例:

@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


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 前端显示
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: