Win32 APIを使用してタスクモニター/マネージャーをビルドしようとしています。これは、開始する新しいプロセスのインスタンスの数を指定するコマンドライン引数で開始されます(Windowsサービスとして)。C++のタスクモニターとマネージャー
task_man.exe 40
はいつでもtask.exe終了(正常かどうか)、今、プロセスの40個のインスタンス
task.exe
を開始します、私はそれを置き換えるために新しいものを開始する必要があります。 PIDは、すべてのアクティブなプロセスがあるかどうかをチェックするループを持って、その後自分のPIDを取得し、
スタートtask_manからタスク:
私のラフなアイデアは、これにあります。すべての無効なPIDに対して、新しいプロセスを開始し、古いPIDを新しいPIDに置き換えます。
私が使用できるより優れたデザイン、またはより良いワークフローがありますか?これを行うための標準的な方法はありますか?私はホイールを再開発したくない...また、どのAPIを調べるべきか?
私も後で変更することは容易であるデザインを探しています - 私はその後
task_man.exe 30
を実行した場合、新しいtask_manが稼働し始めるべきではなく、それはタスクの数を変更する必要がありますつまり、前の例では。 (私はそれが実行を開始することを知っている、私はそれがオリジナルを変更して終了する必要があると言っている)
私は完全な実装を探していないよ、私は気にしないサンプルを見て)、私が使うことができるAPI、あるいは私が思いついた全体的なデザインの提案。
あなたは「コードは欲しくない」と言いますが、それはあなたが閲覧できるオープンソースプログラムが存在するときには怠惰です。あなたが彼らのパラダイムで学んだことがあれば、あなたがしている努力が、他の人の仕事の拡大としてよりよく表現されるだろうと気づくかもしれません。いくつかのコードを読んで、使用しているAPIを見てから、それらのAPIのドキュメントを読んでください。おそらく、http://processhacker.sourceforgeを開始するのに適しています。net/ – HostileFork
@Hostile私は私の質問を編集しました。 –
関連するプラットフォームで理解している言語であれば、完全な実装を恐れてはいけません。完全な実装では、しばしば単なるサンプルが光ってしまう「本当の」心配がたくさんあります。一般的に、ツールの人々の使用の開発の長年の製品は、StackOverflowのドライブバイ・アンサーよりかなり深いです。ダイブしたり、見回したり、他の人のコードベースを構築したり、それを実行したりするのは良いことです。 – HostileFork