VBScript для отображения обратного отсчета с использованием графических элементов Vbscript - PullRequest
0 голосов
/ 17 января 2012

Я хотел отобразить MessageBox, который отображает обратный отсчет от 10 до 1 и автоматически блокируется через 10 секунд. Поскольку Msgbox в vbscript передает выполнение кода до тех пор, пока пользователь не начнет действовать, я попробовал его с помощью Popup в Wscript Shell Object

Dim counter
Dim oShell
counter = 10
Set oShell= CreateObject("Wscript.Shell")
While counter > 0

oShell.Popup " Left " & counter & " Seconds",1,"Remind"
counter = counter-1
Wend

Но он автоматически закрывается на каждую секунду и открывает новое всплывающее окно. Есть ли способ показать обратный отсчет и автоматическое закрытие, используя доступные элементы GUI в скрипте vb

Ответы [ 2 ]

1 голос
/ 18 января 2012

Вы можете использовать Internet Explorer для создания немодального дисплея.

Set oIE = CreateObject("InternetExplorer.Application")

With oIE
    .navigate("about:blank")
    .Document.Title = "Countdown" & string(100, chrb(160))
    .resizable=0
    .height=200
    .width=100
    .menubar=0
    .toolbar=0
    .statusBar=0
    .visible=1
End With

' wait for page to load
Do while oIE.Busy
    wscript.sleep 500
Loop

' prepare document body
oIE.document.body.innerHTML = "<div id=""countdown"" style=""font: 36pt sans-serif;text-align:center;""></div>"

' display the countdown
for i=10 to 0 step -1
    oIE.document.all.countdown.innerText= i
    wscript.sleep 1000
next
oIE.quit
1 голос
/ 17 января 2012

Не бойтесь, всплывающее окно является модальным и с ним нельзя взаимодействовать, пока оно отображается, поэтому нет способа обновить существующее содержимое.

Если вы хотите более гибкий пользовательский интерфейс, вам нужно будет использовать что-торазные, консоль или HTML в HTA.

...