0

コマンドラインで渡されたさまざまな構成ファイルで複数回起動されるサービスプログラムを実行しています。プログラムは、Windowsサービスとして実行されている制御プログラムによって開始されます。このサービスは、プログラムを監視して再起動できる必要があります。現時点では、制御プログラムがクラッシュした場合に問題が発生します。実行中のインスタンスと実行されていないインスタンスを検出できないため、サービスプログラムのすべてのインスタンスを起動できません。

System.Diagnostics.ProcessAPIとWMIAPIを使用して、いくつかの情報を取得してみました。ただし、どちらのバリアントでも、コマンドライン引数は使用できません。

インスタンスを開始するには、System.Diagnostics.ProcessのStartInfoオブジェクトを使用しています。Stackoverflowのどこかで、StartInfoオブジェクト内のプロセス情報を別のプロセスで利用できないことを読みましたが、WMI APIで利用できるはずですが、私の場合は利用できません。

実行中のプロセスのコマンドライン引数にアクセスするために、インスタンスを別の方法で開始する必要がありますか、それとも別の方法で存在しますか?

4

1 に答える 1

0

System.Management名前空間を使用するようにこの設定を変更しました。これで、プロセスが検出されて一覧表示されます。しかし、正規表現を使用してコマンドライン全体を処理する必要があります..それが唯一の「悪い」ことです

于 2010-02-11T13:06:20.450 に答える