用批处理弹出系统对话框代码。怎么用网吧批处理弹出对话框?

上一篇:

网吧系统客户机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"

MsgBox 常数说明:

有时在提示框中可以用其值来代替常数名,如用 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 前端显示


您对"这个些批处理对你有帮助吗?"的看法是

有,帮助很大
有帮助
没帮助
投票  查看

本文来源:天下网吧 作者:电竞酒店

声明
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。若文章侵犯了您的相关权益,请及时与我们联系,我们会及时处理,感谢您对本站的支持!联系Email:support@txwb.com,系统开号,技术支持,服务联系QQ:1175525021本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧·网吧天下
  • 本周热门
  • 本月热门
  • 阅读排行