2014-09-25 5 views
1

Мне нужно написать приложение, которое будет установлено внутри встроенного в Windows7 предприятия O/S. Это задание приложений - перезапускать другое приложение в заданное время каждый день. Не могли бы вы рассказать мне, какие API мне нужно для этой цели? Нужно ли зависеть от планировщика окон для этой задачи? Можно ли настроить планировщик из кода win32?Разработка приложения для перезапуска другого приложения

Есть ли какое-либо приложение, которое выполняет эту работу, уже существует на рынке?

Thanks, John.

+0

Да. Планировщик задач Windows, который встроен в ОС и предназначен для этого (помимо всего прочего). –

ответ

2

Вы можете сделать это из командного файла.

Сначала подготовьте сценарий, например. «restart.bat», чтобы убить процесс и перезапустить его, убийство может быть выполнено с помощью taskkill, перезапуск должен выполняться start, чтобы не блокировать текущий скрипт.

Затем создайте пакетный файл установки, чтобы добавить «restart.bat» в task scheduler

3

Я бы использовал планировщик заданий, который хорошо документирован и имеет много примеров. Взгляните на Time Trigger Example:

Это C++ пример показывает, как создать задачу, которую планируется выполнить Блокнот в указанное время. Задача содержит триггер , основанный на времени, который задает начальную границу и конечную границу для задачи . Задача также содержит действие, которое задает задачу выполнить Блокнот. Задача регистрируется с использованием интерактивного входа в систему , что означает, что задача выполняется под контекстом безопасности пользователя , который запускает приложение. Задача также содержит параметры простоя, которые определяет, как планировщик задач выполняет задачи, когда компьютер находится в состоянии ожидания .

2

Вы можете получить (или указать в виде строки) в PID от EnumProcesses, убить процесс с помощью TerminateProcess(), а затем позже вы можете создать процесс от OpenProcess() функция от Win32.

Другой подход заключается в том, что вы можете также использовать ShellExecute() или system к выполняемой командной строки команды, относящиеся непосредственно из Visual C++ программы, и передать команду как:

taskkill /F /T /IM MyProcess.exe 

позже просто откройте приложение с помощью ShellExecute или system ,

Смежные вопросы