Новые книги

На сегодняшний день Интернет предоставляет людям возможность реального заработка в виртуальном мире, и в этом практическом пособии вы сможете выбрать для себя тот вид заработка, который является для вас наиболее приемлемым и удобным, будь то основной или дополнительный источник ваших доходов.

Книга будет интересна не только опытным пользователям сети, но и тем, кто только начал свое знакомство с «всемирной паутиной».
Что отличает людей, достигающих великолепных результатов в своем деле, от всех прочих? Почему многие из нас остаются крепкими середнячками, тогда как те, с кем мы начинали, становятся профессионалами мирового уровня? Можем ли мы вообще претендовать на что-то выдающееся или это удел избранных? Что определяет наш успех? Образование? Опыт работы? Амбиции? Талант?

Автор этой книги, колумнист и редактор Fortune, уверен: талант (равно как и все вышеперечисленное) здесь ни при чем! Экстраординарные результаты достигаются людьми, которые особым образом практикуются в избранной сфере деятельности — это доказано солидными исследованиями. И эта «осознанная практика», описанная в книге, доступна абсолютно всем.

Перед вами новое российское издание бестселлера Джеффа Колвина. Ранее книга выходила под названием «Выдающиеся результаты. Талант ни при чем!».

Вопрос и Ответ 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;

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


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



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