S.l.e!ep.¢%

像打了激速一样,以四倍的速度运转,开心的工作
简单、开放、平等的公司文化;尊重个性、自由与个人价值;
posts - 1098, comments - 335, trackbacks - 0, articles - 1
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

利用批处理生成各种提示框 [转]

Posted on 2009-02-25 00:15 S.l.e!ep.¢% 阅读(1287) 评论(0)  编辑 收藏 引用 所属分类: DOS

利用批处理生成各种提示框

利用批处理生成各种提示框
[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  前端显示


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理