同じコンピューター上の複数のユーザーが使用しているこのプログラムがあります(リモートデスクトップクライアントを備えたWindows 2008サーバー環境)。
プログラムが正常に終了すると、作業ディレクトリ内の特別なファイルが削除されます。このプログラムのすべてのインスタンスにコマンドを送信して、完全にシャットダウンできるようにする必要があります (終了時にファイルを削除するため)。
これを行うための最良の方法は何ですか?各インスタンスの pid を取得することが最初だと思いますが、その後はどうでしょうか。誰にも良いアイデアはありますか?
編集:言い忘れましたが、これはWinForm(コマンドラインではない)プログラムです。
Edit2: コメントが長すぎたので、代わりに質問を編集するのが最善だと思います...
削除するファイルは、実際には pid を含むファイルです。このファイルを持つ理由は、ユーザーが同じ引数 (ログイン情報) でプログラムを 2 回起動しようとしないようにするためです。
実際にクライアント プログラムを起動しているメイン プログラム (コントロール センター) は、ユーザー ディレクトリ内の pidfile を追跡しています。ファイルを検出すると、pid を読み取り、pid が存在するかどうかを確認しようとします。そうでない場合は、実際にファイルを削除し、ユーザーがクライアント ウィンドウを起動できるようにします。
その手順を使用することで、アプリケーションに関連付けられているすべての pid を検索し、単純にそれらを強制終了できると思いますが、シャットダウン コマンドを送信できるようにしたいと考えています。理由が何であれ、プログラムはシャットダウンしています。(クライアントが開始、リモート サーバーが開始、またはこの場合は「ローカル サーバーが開始」)。