Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > Запуск программы


Автор: Diksa 27.11.2008, 12:50
Здравствуйте ребята подскажите как запретить многократный запуск программы, тоесть если она запущена на ПК, чтоб второй раз не запускалась??
Зарание спасибо!!

Автор: Partizan 27.11.2008, 13:09
Diksa, Каждый экземпляр программы создаёт(или получает созданный) мутекс и пытается его захватить. Если захватить не получилось, то программа не должна запускаться. 

Само собой, что захватить его получится только у первого экземпляра программы.

Автор: Diksa 27.11.2008, 13:21
Да нет так я ничего не пойму smile , мнебы примерчик!
Я там нашол пару топов по этому поводу но что-то там тоже непонятно как всетаки оно делается!

Автор: Diksa 27.11.2008, 13:39
Вообщем делаю я это так 
Код

public partial class MainAsp : Window
    {
        public MainAsp()
        {
//=======запрет на повторный запуск=======
            Process currentPr = Process.GetCurrentProcess();
            foreach (Process pr in Process.GetProcesses())
            {
                if ((pr.ProcessName == currentPr.ProcessName) && (pr.Id != currentPr.Id))
                {
                    MessageBox.Show("Приложение уже запущено!!!");
                    this.Close();
                    return;
                }
            }
         }
     }

Незнаю только правильно ли это, но второй раз не запускается smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)