Другие языки программирования и технологии

Как в VBS задать время во сколько вылезет сообщение?

Как создать сообщение я знаю. А как задать время во сколько, или через сколько?
Задержка выполнения программы: WScript.Sleep N, где N − число миллисекунд задержки ( 1 = 1/1000 секунды, 60000 = 1 минута )
К примеру вот такой скрипт-шутка:

Set WshShell = CreateObject("WScript.Shell")
while 1=1
WScript.Sleep 6000
WshShell.Popup "Программа выполнила недопустимую ошибку. " & vbCr &_
"И будет отформатирован жёсткий диск. ", 60, "Warning", 3+16+4096
WScript.Sleep 6000
WshShell.Popup "Вы зашли на порносайт. " & vbCr &_
"Вам понравились гениталии девушки в третьем ряду слева? ", 60, "Warning", 4+32+4096
wend

Если же нужно что-то типа планировщика, т. е. выполнять какие-либо действия при достижении определённого системного времени, то можно делать вот так:

Do ' Крутимся в цикле
If BackupDay = Day(Date) Then ' Бэкап сегодня нужно создавать
TekTime = Time
toLog "Ожидаемый час создания бэкапа = " & Hour(BackupTime) & " Текущий час = " & Hour(TekTime)
If Hour(BackupTime) > Hour(TekTime) Then ' Час создания бэкапа не наступил
toLog "Час создания бэкапа ещё не пришел"

ElseIf Hour(BackupTime) < Hour(TekTime) Then ' Час создания архива пропущен - запускаем бэкап
toLog "!!! Час создания бэкапа пропущен - запускаем принудительно сейчас... "
RunBackupScript

Else
toLog "Бэкап нужно создать = " & BackupDay & " Текущая дата = " & Day(Date)
toLog "Ожидаемый час создания бэкапа = " & Hour(BackupTime) & " Текущий час = " & Hour(TekTime)

toLog "Час создания бэкапа пришел"
toLog "Ожидаемая минута создания бэкапа = " & Minute(BackupTime) & " Текущая минута = " & Minute(TekTime)
If Minute(BackupTime) <= Minute(TekTime) Then ' Минута создания архива настала или уже прошла - запускаем бэкап
toLog "Пришло время создания бэкапа"
RunBackupScript

Else
toLog "Минута создания бэкапа ещё не наступила"
End If
End If

Else
toLog "Создавать бэкап уже не нужно"
End If

WScript.Sleep SleepTime
Loop False

Это реальный кусок кода из работающего скрипта по созданию бэкапа данных на сервере, только некоторые из строк по логированию закомментированы....
Василий Гущин
Василий Гущин
89 298
Лучший ответ
Слипнуть на нужное кол-во милисекунд) Но если нужно по расписанию - то планировщик и юзай)
Можно записать в переменку время запуска и сравнивать его с системным, если ==, то ШАЙДАБЫЛОБАДАБУМ! Ну ты понял! ;)

Похожие вопросы