Как я могу заставить программу запускаться автоматически в определенное время в день (VB.NET)

Приложение, которое я разрабатываю прямо сейчас, позволяет пользователю обновлять лист Excel или базу данных Sql для установки показателей дважды в день. Программа делает это, выскакивая в определенное время (например, 6:00 AM, 5:00 PM, 3:42 PM, независимо от того, что пользователь устанавливает). Когда программа появляется в определенное время, программа («Auto Excel It !!!») позволяет вам отслеживать установленные данные (например, звонки продаж, презентации продаж, собрания, количество часов кодирования, количество jalepeño burritos eaten и т. д.).

Как разработчик может заставить эту программу «всплывать» / запускать / выполнять автоматически в определенное время с помощью API Scheduler Windows (или что-то лучше)?

Вот как мое понимание развилось в последнее время:

Nothing -> Использовать таймеры, поскольку программа работает в фоновом режиме -> Использовать API-интерфейс Scheduler для автоматического запуска (текущего) -> Возможное новое понимание из вашего ответа

Например, я знаю: DispatcherTimers, Timers, другой таймер, о котором я не знаю, Sleep (), Планировщик Windows. Но имея в виду, я не знаю, что делать в отношении следующего: автоматический запуск программы через Windows Scheduler; Сохранение ресурсов компьютера, если используется таймер; или даже как получить эту вершину автоматически.

Обновление 1:

@ nfell2009: Ваша логика очень помогла мне. Сначала мне пришлось поиграть с конвертированием своего таймера сюда в DispatcherTimer (кажется, стандартный стандарт WPF). Затем я переключил «Ручки» для Sub tCheckTime на «AddHandler tCheckTime.Tick, AddressOf tCheckTime_Tick». Почему я должен был сделать это, это хороший вопрос.

Затем, когда я установил базовые настройки EventHandlers, ваша идея сравнить текст пользователя (как Date) с System.Date хороша – когда я что-то прикрутил и не смог заставить код работать, я включил его и преобразовал System.Date в String – т.е. я перешел из String-> Date To Date-> String … Вот когда я получил таймер для работы. Когда мое System.Time отметит до 3:12 вечера, MsgBox появился с «Your Message Here».

(Быстрое (злое) спасибо! Я потратил четыре с лишним часа на то, чтобы это работало)

Код:

От использования «Ручки» В tCheckTime_Tick (Кажется, что он должен «работать»)

Private Sub tCheckTime_Tick(sender As Object, e As EventArgs) Handles tCheckTime.Tick ... End Sub 

Для AddHandler blah, AddressOf tCheckTime_Tick (работает)

 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Loaded 'MsgBox(Now().ToString("hh:mm")) 'String.Format("{hh:mm}", Now())) AddHandler tCheckTime.Tick, AddressOf tCheckTime_Tick 'Why is this necessary? tCheckTime.Interval = New TimeSpan(0, 1, 0) End Sub 

 Public Class Form1 Dim iSetTime As Date Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load End Sub Private Sub btnSetTime_Click(sender As Object, e As EventArgs) Handles btnSetTime.Click If (tCheckTime.Enabled = True) Then tCheckTime.Enabled = False End If iSetTime = txtTHour.Text + ":" + txtTMinute.Text + ":" + txtTSecond.Text tCheckTime.Enabled = True End Sub Private Sub tCheckTime_Tick(sender As Object, e As EventArgs) Handles tCheckTime.Tick If (TimeOfDay = iSetTime) Then MsgBox("Your Message") End If End Sub End Class 

Вам понадобится проверка ошибок для текстовых полей, но это просто: 3 текстовых поля, с указанием которых есть, поэтому, возможно, ярлык с H, M, S – или что-то еще.

Кнопка, которая устанавливает время и таймер. Именование: текстовые поля Часы = txtTour

Минуты = txtTMinute

Секунды = txtСекунд

Кнопки Start Button = btnSetTime

Таймеры Timer = tCheckTime

Я могу думать о двух простых способах:

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

  2. Используйте диспетчер задач MS для запуска вашей программы, когда и когда это необходимо.

Interesting Posts

VB.net DataGridView в Excel

Добавить расширение файла в массе

Excel 2010, как я могу вычислить процентиль чисел в столбце, только если в другом столбце указано указанное число

Сохраните файл xls с FileInputStream: файл находится в другом формате, чем его расширение указывает

Регулярное выражение для дат YYYY-WW

Оператор Excel VBA inline IF делает переменную 0

Как найти в матче между двумя строками в excel на основе нескольких критериев, включая установку внутри диапазона дат

Обновление запросов Bloomberg в петле цикла VBA

Получение максимального номера строки / столбца из диапазона Excel

Редактирование и назначение недавно добавленного графика в Excel VBA

Как изменить имя листа из C # в электронной таблице Excel

Аргумент RoundDown недействителен в публичной функции

Создание ссылки на динамическую ячейку в формуле excel

read.xlsx () выдает ошибку в R

Загрузите файл excel с URL-адреса VBA

Давайте будем гением компьютера.