6

サーバー上で実行されている Windows フォーム アプリケーションがあります。今度は、同じアプリケーションの複数のインスタンスを同時に実行する必要があります。各インスタンスは異なるデータベースに接続します。アプリケーションの起動時に、接続しているDBを特定できるようにタイトルを変更しますが、タスクマネージャーでも名前を変更したいと思います。これは、スーパーバイザーとして機能する別のアプリケーションがあり、必要に応じてプロセスを強制終了および開始するためです。殺すプロセスを明確に特定する方法を見つけなければなりません。

4

2 に答える 2

1

スーパーバイザーに、識別情報を含む実行可能ファイルの一時的なコピーを作成してもらい、それを開始してもらいます...タスクマネージャーが次のようになるようにします

My process - database 1.exe
My process - database 2.exe
et cetera
于 2013-02-05T19:20:15.240 に答える
0

Supervisor プログラムがプロセスを開始するプログラムである場合、これらの子プロセスを完全に制御できます。必要に応じて、簡単にそれらを強制終了/開始できます。必要に応じてProcessを使用します。

using System.Diagnostics;

Process p1 = new Process();
Process p2 = new Process();
Process p3 = new Process();

p1.StartInfo.FileName = "notepad.exe";
p2.StartInfo.FileName = "notepad.exe";
p3.StartInfo.FileName = "notepad.exe";

//start the procs
p1.Start();
p2.Start();
p3.Start();

//kill the procs
p1.Kill();
p2.Kill();
p3.Kill();

一部のスーパーユーザーにプロセスを強制終了するアクセス権を与えたい場合は、GUI を使用して実行させてみませんか? GUI がない場合、彼らはどのようにプログラムを実行していますか? cmd経由で開始されますか?

以下の私のコメントからコピー:

ユーザーが特にタスクマネージャーからプロセスを強制終了できるようにしたい場合は、[アプリケーション] タブを使用して正しいプロセスを選択し (固有のウィンドウ タイトルを付ける必要があります)、右クリック > [プロセスに移動] をクリックして、そこから殺す。

于 2013-02-05T15:58:26.087 に答える