C# で .NET を使用しています。
同じ実行可能ファイルの 2 つのインスタンスが同時に実行されるのを防ぎたいのですが、同じプロセスが別のフォルダーから実行されるのを防ぎたくありません。
たとえば、次の 2 つの異なる場所にある実行可能ファイルがあります。
C:\MyProject\Master\Program.exe
C:\MyProject\Slave\Program.exe
これらは同じ .exe ファイルですが、2 つの異なる場所にあります。
Master フォルダーから実行される Program.exe の 1 つのインスタンスと、Slave フォルダーから実行される 1 つのインスタンスを許可したいのですが、いずれか 2 つを許可したくありません。
同じ名前 (Process.GetProcessesByName) を持つプロセスの数を確認してこれを実行しようとしましたが、2 つを区別することはできません。
私が見つけた最も近い方法は、プロセスからモジュールを取得することです。
リストの最初のものは、exe の ProcessModule です。しかし、これが常にリストの最初のものになるかどうかはわかりません。それに対する保証はありますか、それとも説明された問題に対するより良い解決策はありますか?