Здравствуйте! Написал программу, использую Mutex для ограничения одновременно запущенных копий программы. Но вот когда я выбераю тип построения Release, то этот Mutex перестаёт работать. Вообще я понял так, на это влияет опция "Оптимизировать код". Дело в том, что отключить эту опцию не вариант, после любого обфускатора этот Mutex также не работает. Вообще не знаю что делать.
| Код | static class Program { /// <summary> /// Главная точка входа для приложения. /// </summary> [STAThread] static void Main(string[] arguments) { //Включаем визуальные стили раньше, чем будет проверка, чтобы MessageBox выглядел современно Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false);
const String AppName = "My Program"; //Просто название приложения bool oneOnly; bool NeedHide = false; if (arguments.Length != 0) { if (arguments[0] == "-hide") { NeedHide = true; } }
// Указываем имя своей программы. В нашем случае My Program Mutex m = new Mutex(true, AppName + "7696579547995", out oneOnly); if (oneOnly) { Application.Run(new MainForm(NeedHide)); } else { MessageBox.Show("Приложение " + AppName + " уже запущено."); } } }
|
Может есть вариант какой нибудь другой ограничивающий кол-во запущенных приложений? |