我正在寻找使用Win32 API来构建任务监视器/管理器。它将通过一个命令行参数来启动(最好是一个windows服务),指定一个新进程应该启动多少个实例。C++中的任务监视器和管理器
task_man.exe 40
将启动过程
task.exe
现在,每当task.exe退出(正确与否),我将不得不开始一个新的来取代它的40个实例。
我粗略的想法是这样的:
开始从task_man任务,得到他们的PID,然后有一个循环,检查的PID是否所有活动进程。对于每个无效的PID,开始一个新的过程,并用新的过程替换旧的PID。
有没有更好的设计,我可以使用,或更好的工作流程?有没有一个标准的方法来做到这一点?我不想重新发明轮子......另外,我应该看看哪些API?
我也在寻找一个设计,很容易事后发生变化 - 也就是说,如果我跑
task_man.exe 30
之后,一个新的task_man不应该开始运行,而是应该改变的任务数在前面的例子中。 (我知道它会开始运行,我说它应该修改原来的,然后退出)
我不是在寻找代码(因为我不是在寻找完整的实现,而不是我介意看样品),而是我可以使用什么API,或对我提出的整体设计提出建议。
你说你“不要代码”,但这只是懒惰,当你可以仔细阅读开源程序。如果你在他们的范例中成为文化人,你甚至可能意识到你正在进行的努力可以更好地表达为他人工作的扩展。阅读一些代码,查看他们使用的API,然后阅读这些API的文档。也许是一个很好的开始:http://processhacker.sourceforge。net/ – HostileFork
@Hostile我编辑了我的问题。 –
如果他们使用您在相关平台上理解的语言,请不要害怕完整的实现。完整的实现往往会带来很多“真正”的担忧,即单纯的样本会被忽略。人们使用工具开发多年的产品通常比StackOverflow上的驱动式答案要深刻得多。潜入,环顾四周,建立别人的代码库并逐步完成它......这是一件好事。 – HostileFork