Я ищу, чтобы создать монитор/менеджер задач с помощью Win32 API. Он будет запущен (желательно как служба Windows) с аргументом командной строки, определяющим, сколько экземпляров нового процесса он должен запустить.Монитор задач и менеджер в C++
task_man.exe 40
Начнет 40 экземпляров процесса
task.exe
Теперь, всякий раз, когда task.exe выходов (правильно или нет), я должен буду начать новый, чтобы заменить его.
Моей грубая идея:
Запустить задачи из task_man, получить их ИДП, а затем цикл, который проверяет, является ли ИДП всех активных процессов. Для каждого недопустимого PID запустите новый процесс и замените старый PID на новый.
Есть ли лучший дизайн, который я могу использовать, или лучший рабочий процесс? Существует ли стандартный метод для этого? Я не хочу изобретать колесо ... Кроме того, какие API-интерфейсы я должен искать?
Я также ищет дизайн, который легко изменить впоследствии - то есть, если я бегу
task_man.exe 30
после этого, новый task_man не должен начать работать, а это должно изменить количество задач в предыдущем случае. (Я знаю, что он начнет работать, я скажу, что он должен изменить оригинал, а затем выйти)
Я не ищу код (как в Я не ищу полную реализацию, а не то, что я имею в виду просматривая образцы), скорее, какие API-интерфейсы я могу использовать, или предложения по общему дизайну, которые я придумал.
Вы говорите, что вы «не хотите код», но это просто лень, когда существуют программы с открытым исходным кодом, которые вы можете просмотреть. Если бы вы стали грамотными в своей парадигме, вы могли бы даже понять, что усилия, которые вы предпринимаете, будут лучше выражаться как расширение работы других. Прочтите код, посмотрите, какие API они используют, затем прочитайте документацию для этих API. Возможно, хорошее место для начала: http: //processhacker.sourceforge.net/ – HostileFork
@Hostile я отредактировал мой вопрос. –
Не бойтесь полных реализаций, если они находятся на языке, который вы понимаете на соответствующей платформе. В полной реализации часто есть много «реальных» забот в том, что простой образец будет блестеть. Продукт лет разработки инструмента, который люди используют, обычно немного глубже, чем ответ на накопитель StackOverflow. Погрузитесь, оглянитесь вокруг, создайте чужую кодовую базу и пройдите через нее ... это хорошо. – HostileFork