Форум веб-мастеров  /  Статьи веб-мастера  /  WHOIS-сервис  /  Услуги веб-мастера  /  RSS 
Разделы сайта




Полезные ссылки

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

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



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

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


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

      В Delphi 2.0 не поддерживается переменная hPrevInst (см. "Вопрос и Ответ 17") и определение первая это копия приложения или нет становится нетривиальной задачей.

      Наиболее простой путь - перебор всех окон и при совпадении заголовка окна с Application.Title считать, что приложение уже запущено. Единственное, необходимо помнить, что в момент проверки Вы обнаружите и собственное окно (окно проверяющего приложения) и дочернее окно среды Delphi (в момент разработки приложения, для Delphi 1.0).

      Пример:

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

      procedure TForm1.FormCreate(Sender: TObject);
      VAR

        Wnd : hWnd;
        buff: ARRAY [0..127] OF Char;
        WC: TWndClass;

      begin

        Wnd := GetWindow(Handle, gw_HWndFirst);
        WHILE Wnd <> 0 DO BEGIN

          {Если не собственное и не дочернее окно}
          IF (Wnd <> Application.Handle) AND (GetWindow(Wnd, gw_Owner) = 0) THEN BEGIN

            GetWindowText(Wnd, buff, sizeof(buff));
            {Если заголовок совпадает, то...}
            IF StrPas(buff) = Application.Title THEN BEGIN

              MessageDlg('Приложение уже загружено', mtWarning, [mbOk], 0);
              Halt;

            END;

          END;
          Wnd := GetWindow(Wnd, gw_hWndNext);

        END;

      end;

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


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



[ Вверх ]

Rambler's Top100

Другие наши проекты:
бодибилдинг | Строим Домик | RU-домены за 170 рублей |
"Вопрос и Ответ 44"
Copyright © "В помощь Веб-Мастеру" (Alexander D. Belyaev) 2005-2008.
При перепечатке любого материала видимая ссылка на источник "В помощь Веб-Мастеру" и все имена, ссылки авторов обязательны!
Время генерации страницы: 0.076