Как не допустить запуск второй копии программы III
Вот решил поделиться советиком по теме "Как не допустить запуск второй копии программы III". Прочитал версии этого совета "I" и "II". Как говориться, "но есть способ лучше..." Впрочем, он годится только для тех кому нет острой необходимости активировать существующую копию программы, а достаточно сообщить пользователю, что она уже запущена. Проверено, работает корректно в реальном приложении.
... Uses syncobjs; ... Var
CheckEvent: TEvent;... procedure TForm1.FormCreate( Sender: TObject ); begin
CheckEvent:= TEvent.Create( nil, false, true, 'MYPROGRAM_CHECKEXIST' ); If CheckEvent.WaitFor( 10 ) <> wrSignaled then begin // Сюда попадаем если одна копия уже запущена. Можно, например, сообщить об этом пользователю. Self.Close; // Здесь можно завершить программу или сделать еще что-нибудь. end;end;