質問: Imports System.Diagnostics.Process 中略 If GetProcessesByName(GetCurrentProcess.ProcessName).Length > 1 Then 上記のようにして、起動中のexe(仮にAAA.exe)が二重起動しないように制御しています。 上記のexeを作った同じプロジェクトから接続先だけが異なるexe(AAB.exe)も存在します。 自分自身と同じ名前のexeは前述の方法でチェックできるのですが、自身と特定の名前のexeは二重起動させたくない、といった場合、どのようにすると良いでしょうか? (上記の例で言うと、AAA.exeは、2つ目のAAA.exeと1つ目のAAB.exeを同時に起動させたくない) .NET3.5
回答: >上記の例で言うと、AAA.exeは、2つ目のAAA.exeと1つ目のAAB.exeを同時に起動させたくない 簡易的には、Mutex を使った方法がお勧めです。 要件は他にもあるでしょうし、変更もありえる事を考えると、 私だったら、 Exe を実行しないでは、なかなか難しいので、 そのJOB用の管理プログラム(Windows サービスでなくても実現可能)を1本書いて、 管理プログラムが、死活監視兼、実行許可管理をします。 実行した Exe が、管理プログラムへ自身を登録して、実行許可を貰います。 管理プログラムから、実行許可が貰えない場合は、その旨ログを残して終了します。 この考え方を応用すると、ライセンスキー形態応じた、実行も可能となります。