Я использую .NET с C#.Предотвращение нескольких экземпляров процесса одного исполняемого файла
Я хочу, чтобы оба экземпляра одного и того же исполняемого файла выполнялись одновременно, но я не хочу, чтобы один и тот же процесс запускался из другой папки.
Например, у меня есть исполняемый файл, который находится в двух разных местах:
C: \ MyProject \ Master \ Program.exe
C: \ MyProject \ работорговли \ program.exe
Это то же самое .exe-файл, но в двух разных местах.
Я хочу, чтобы один экземпляр программы Program.exe запускался из основной папки и одного экземпляра из папки Slave, но ни одного из них не было.
Я попытался сделать это, проверив количество процессов с тем же именем (Process.GetProcessesByName), но тогда я не могу отличить их.
Ближайший я нашел, чтобы получить модули из процесса.
Первый в списке ProcessModule exe. Но я не уверен, будет ли это всегда первым в списке. Есть ли какая-либо гарантия для этого, или есть лучшее решение этой проблемы?
Я фактически проголосовал, чтобы закрыть это как дубликат [этого] (http://stackoverflow.com/questions/819773/run-single-instance-of-an-application-using-mutex), когда я понял, что вам нюансы. Сожалею. Тем не менее, вы все равно можете следовать этому подходу, но закодируйте полное имя пути в имени мьютекса, таким образом, предоставляя экземпляр для каждого каталога. –
Нет проблем. Я даже не знаю, достаточно ли объяснений. :) –