Вопрос о написании кода в VBScript для создания напоминания или будильника - PullRequest
0 голосов
/ 17 января 2019

Я хочу создать напоминание или будильник, чтобы напоминать себе об отчетах, особенно с нерегулярной периодичностью.

Ниже приведен код, по которому я хочу автоматически звонить в указанный день и время. Появится окно с сообщением, и если щелкнуть «Нет», он будет запрашивать снова каждые 10 минут, пока не будет нажата кнопка «Да».

ans = Msgbox("Have you submitted the report?",vbYesNo + vbQuestion, "Reminder")

If ans = vbNo then

   Do Until ans = vbYes
      WScript.Sleep 600000 'every 10 minutes, 1 = 1ms
      ans = Msgbox("Have you submitted the report?",vbYesNo + vbQuestion, "Reminder")
   Loop 

End If

WScript.Quit

Однако я не знаю, как написать код для запуска сценария? Есть ли в VBScript функция, аналогичная процедуре события в Excel VBA?

Например, я бы хотел что-то вроде этого:

If Weekday(Date()) = 3 or Weekday(Date()) = 5 And Time() >= TimeValue("3:30pm") then
   'Call the above code
End If

Однако вышеприведенный оператор if не запустится сам, даже если дата и время удовлетворены ...

Дополнительные вопросы:

Если я нажму «Нет», окно сообщения исчезнет и вернется через 10 минут. Что если я захочу выйти из сценария до появления следующего окна сообщения, как это реализовать?

А также есть ли способ указать единицу времени, а не миллисекунды для метода Sleep? Большое спасибо!

1 Ответ

0 голосов
/ 17 января 2019
SCHTASKS /Create /SC WEEKLY /D MON /TN ReportAlarm /st 16:00 /TR "c:\windows\system32\cmd /c 'Echo Report Time & Pause'"

См. schtasks /? для справки.

Так вы планируете задачу раз в неделю.

Но вы можете использовать Сигналы тревоги и часы Windows с более чем 30-минутным отсрочкой.

Нажмите Пуск , Все приложения , Сигналы тревоги и часы . На вкладке Alarm нажмите большой знак + на нижней панели инструментов. Установите будильник на 4 вечера , Повторите на Понедельник и Отложите на 30 минут . Назовите сигнал тревоги Пожалуйста, отправьте отчет . Нажмите значок дискеты на нижней панели инструментов, чтобы сохранить.

...