IApple, так а цель какая? Не давать запустить больше одной копии на одном компьютере? Если да, то используй глобальный
мьютекс:
bool createdNew;
var appMutex = new Mutex(true, "Global\\MyMutex", out createdNew);
if (createdNew)
{
// Это первый экземпляр
// Код приложения
// ........
// Освобождаем mutex перед завершением работы
appMutex.ReleaseMutex();
}
else
{
// Запущен другой экземпляр
// Выводим сообщение и завершаем приложение
// mutex освобождать не надо!
}
Префикс Global\ обеспечивает видимость именованного мьютекса во всех терминальных сессиях. Вместо MyMutex подставь свое более уникальное имя. Например, добавь GUID.