VBscript HTTP Status msgbox появляется только после выпуска - PullRequest
0 голосов
/ 04 декабря 2018

Вот код VBscript внутри MS-HTA, который я делаю. Он должен проверять наличие обновлений для веб-сервера при каждом запуске.

Но это не работает, оно появляется один раз, если пользователь нажимает «ОК» и не загружает новую версию, даже если они остаются в старой версии, они никогда не запрашивают снова.

В любом случае, я могу заставить его запрашивать каждый запуск, если версия все еще устарела?Должен быть VBScript, который может работать внутри HTML-приложения MS-HTA.

Dim varHTTP, varBinaryString, varFileName, varLink

set objShell = CreateObject("WScript.Shell")

Set varHTTP = CreateObject("Microsoft.XMLHTTP")
Set varBinaryString = CreateObject("Adodb.Stream")

varFileName = "YoutubeDLV2.zip"
varNewFileName = "YoutubeDLV3.zip"
varLink = "https://MyURL.com/YTDL/V2/" & varFileName
varNewLink = "https://MyURL.com/YTDL/V3/" & varNewFileName
varHTTP.Open "GET", varLink, False
varHTTP.Send

CheckFile()

Sub CheckFile()
Select Case Cint(varHTTP.status)
    Case 200, 202, 302 
        'it exists
        Exit Sub
    Case Else
        'does not exist         
        msgbox "Update Found! Go to:" & vbNewLine & 
"https://MyURL.com/YTDL/" & vbNewLine & "And download latest version." & 
vbNewLine & vbNewLine & "Currently Running Version." & vbNewLine + varLink & 
vbNewLine & vbNewLine & "Newest Version:" & vbNewLine + varNewLink
End Select
End Sub

Кажется, что эта строка вызывает проблемы

Case 200, 202, 302 

Случай 202 - вызывает запрос каждый раз сам по себе

Дело 200, 202, 302 - вызывает его только один раз, даже если отклонено

Дело 200 - само по себе ничего не делает

200 – OK (standard successful http request)
202 – Accepted (request accepted for processing, but not completed)
302 – Found (via redirection)

Как я уже говорил выше, этот код делаетработать, но только один раз.Я хотел бы, чтобы это работало каждый раз, я в недоумении, почему я не могу заставить его работать, Есть идеи?

--- EDIT

Я просто пошел с партией, какЯ знаю это лучше, и сделал это, что работает.он зависит от версии 5 powershell, поэтому он не будет работать в Windows 7, и от стороннего wget, но он работает:)

:main
cls
set version=2.0
set filename=YoutubeDLV3.zip
wget.exe --no-check-certificate https://mysite/YTDL/version.txt >nul
set /p nwstvrsn=<version.txt
set nwstvrsn=%nwstvrsn: =%
if %version% lss %nwstvrsn% goto newupdateavailable
if %version%==%nwstvrsn% goto noupdateavailable
goto main


:newupdateavailable
cls
echo.
echo Downloading Update...
echo.
wget.exe --no-check-certificate https://mysite/YTDL/V2/%filename% -O "%filename%"
ping localhost -n 2 >nul
PowerShell.exe Expand-Archive %filename% -DestinationPath %userprofile%\Downloads\
pause
exit

:noupdateavailable
cls
echo.
echo No Update Available
echo.
pause
exit

и говорит ему запускаться из hta с

Sub  Window_onload

Const NORMAL_WINDOW = 1
Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "VersionCheck.bat", "", , , NORMAL_WINDOW

End Sub

1 Ответ

0 голосов
/ 07 декабря 2018

Я просто пошел с партией, поскольку я знаю это лучше, и сделал это, что работает.он зависит от версии 5 powershell, поэтому он не будет работать в Windows 7, а также от стороннего wget, но он работает:)

:main
cls
set version=2.0
set filename=YoutubeDLV3.zip
wget.exe --no-check-certificate https://mysite/YTDL/version.txt >nul
set /p nwstvrsn=<version.txt
set nwstvrsn=%nwstvrsn: =%
if %version% lss %nwstvrsn% goto newupdateavailable
if %version%==%nwstvrsn% goto noupdateavailable
goto main


:newupdateavailable
cls
echo.
echo Downloading Update...
echo.
wget.exe --no-check-certificate https://mysite/YTDL/V2/%filename% -O "%filename%"
ping localhost -n 2 >nul
PowerShell.exe Expand-Archive %filename% -DestinationPath %userprofile%\Downloads\
pause
exit

:noupdateavailable
cls
echo.
echo No Update Available
echo.
pause
exit

и говорит ему запускаться из hta с

Sub  Window_onload

Const NORMAL_WINDOW = 1
Set objShell = CreateObject("Shell.Application")
objShell.ShellExecute "VersionCheck.bat", "", , , NORMAL_WINDOW

End Sub
...