我正在尋找使用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