网吧系统客户机Steam平台显示简体中文批处理-网吧批处理-天下网吧
弹出一个对话框窗口,提醒网吧顾客,本网吧已经开通各种游戏特权。请大家放心使用!
因为批处理本身是在DOS环境下运行的,默认是没有弹出Windows对话框的功能,但是可以「曲线救国」方式来弹出系统的对话框。这个曲线的方式就是批处理生成VB文件,VBS里是可以直接弹出系统对话框的。然后运行这个VBS,达到弹出系统对话框的功能。
@echo msgbox "你好,天下网吧!本网吧已经开通各种游戏特权。请大家放心使用!">txwb.vbs @txwb.vbs @del txwb.vbs
@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"
有时在提示框中可以用其值来代替常数名,如用 3 代替 vbYesNoCancel
常数 值 描述 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 前端显示