利用批處理生成各種提示框
利用批處理生成各種提示框
[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]
經(jīng)測試各種按扭的對應(yīng)的數(shù)值如下:
[code]
OK(確定)=1
Cancel(取消)=2
Abort(終止)=3
Retry(重試)=4
Ignore(忽略)=5
Yes(是)=6
No(否)=7
[/code]
如果想獲取在對話框中輸入的內(nèi)容,可以用以下實例:
[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 常數(shù)說明(有時在提示框中可以用其值來代替常數(shù)名,如用 3 代替 vbYesNoCancel)
[code]
常數(shù)????????????????????????????????? 值??????? 描述
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????? 應(yīng)用程序模式。用戶必須響應(yīng)消息框,才能繼續(xù)在當前應(yīng)用程序中
工作。
vbSystemModal??????????? 4096? 前端顯示