Я пытаюсь написать код для автоматической «настройки» набора запланированных задач на машине. Программа будет читать файл XML, а затем «настраивать» время выполнения и т. д. задачи на основе информации в файле XML.
Идея должна заключаться в том, что программу можно «запускать» на машине несколько раз и автоматически «добавлять/удалять» любые эффективные изменения. То, как я хотел это сделать, было следующим:
Все задачи будут создаваться с каким-то специальным «префиксом». Когда программа запускается, она «удаляет» все задачи с этим префиксом, поскольку можно предположить, что они были запущены программой с другой, ранней конфигурацией.
Затем программа «создает» новые задачи.
Поэтому моя программа "конфигурация" должна иметь возможность
- Получить список всех существующих запланированных задач на машине
- Удалить задачи по имени
- Создавайте новые задачи по имени
Проще всего будет, если я смогу написать программу на C#.
Кажется, есть два способа сделать это:
Программа C# явно запускает программу «schtasks.exe» с соответствующими параметрами командной строки. Он «читает» и анализирует выходные данные schtasks.exe, чтобы получить список существующих задач и удалить их. Затем он снова запускает schtasks.exe для создания новых задач.
Используйте интерфейс ITaskManager через оболочку .NET COM для программного запроса и планирования задач.
Я бы предпочел использовать № 2, но у меня есть подозрение, что это «старая» функциональность — то, что я могу найти в Интернете, подразумевает, что функциональность диспетчера задач улучшилась со времен Windows NT.
Является ли schtasks.exe просто инструментом командной строки, написанным поверх COM-интерфейса ITaskManager? Или есть вещи, которые schtasks.exe может делать, чего не может интерфейс ITaskManager?
Создает ли интерфейс/компонент COM ITaskManager файлы «.job» в папке запланированных задач?