cHeRsAnYa1, можно сделать проще, не разрешать запуск второй копии программы. procedure TForm1.FormCreate(Sender: TObject); begin CheckEvent := TEvent.Create(nil, false, true, "MYPROGRAM_CHECKEXIST"); if CheckEvent.WaitFor(10) <> wrSignaled then begin //Сюда попадаем если копия запущена. Self.Close; // Здесь можно завершить программу end;
cHeRsAnYa1, Или так! procedure TForm1.FormCreate(Sender: TObject); begin // Проверяем есть ли указатель на предыдущую копию приложения if hPrevInst <> 0 then begin // Если есть, то выдаем сообщение и выходим MessageDlg("Программа уже запущена!", mtError, [mbOk], 0); Application.Terminate; end; // Иначе - ничего не делаем end;
15 апр 2008 в 13:58