wm-help.net -> Электронная библиотека -> Delphi -> Вопросы и Ответы по Delphi -> Вопрос и Ответ 17 -> Версия для печати

Вопрос и Ответ 17



Вопрос и Ответ 17

Вопросы и Ответы


      17. Как определить работает ли уже данное приложение или это первая его копия?

      Каждый экземпляр программы имеет ссылку на свою предыдущую копию - hPrevInst: hWnd (см. "Вопрос и Ответ 44"). Ее можно проверить перед созданием приложения и при необходимости отреагировать соответствующим образом.

      Если запущена только одна копия, то эта ссылка равна нулю.

      Пример:

      ............

      procedure TForm1.FormCreate(Sender: TObject);
      begin

        {Проверяем есть ли указатель на предыдущую копию приложения}
        IF hPrevInst <> 0 THEN BEGIN

          {Если есть, то выдаем сообщение и выходим}
          MessageDlg('Программа уже запущена!', mtError, [mbOk], 0);
          Halt;

        END;
        {Иначе - ничего не делаем (не мешаем созданию формы)}

      end;

      ............

      P.S. Для выхода необходимо использовать Halt, а не Close, как хотелось бы, так как форма еще не создана и закрывать нечего.


...предыдущая страница следующая...
оглавление

Rambler's Top100