Вот один из способов сделать это, который представляет собой гибридный подход:
Создайте текстовый файл с датами и временем, когда вы хотите, чтобы программа работала.Например, он может содержать:
2011-03-01
0100
0312
0815
0945
1340
2011-03-02
0220
...
Затем напишите вашу программу, которая выполняет любую задачу, которую она должна выполнить, и последнее, что она делает перед выходом, читает файл, найдите в следующий раз, когда она понадобитсязапускать и планировать себя (выполняя команду AT, вызывая schtasks.exe или вызывая эквивалентные API планировщика задач функции).Планировщик API не для робких.Я бы предложил заглянуть в обертку.Поиск «планировщик задач Windows C #» возвращает несколько.