Новые книги

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

Пособие рассчитано на читателей, по роду своей деятельности занимающихся рекламной деятельностью: работников средств массовой информации, предпринимателей – представителей мелких, средних и крупных компаний. Книга будет интересна также и для студентов, преподавателей дисциплин, связанных с рекламой.

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

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


      48. Как определить какие приложения уже запущены?

      Для получения списка запущенных приложений необходимо, с помощью функции:

      function GetWindow(Wnd: HWnd; Cmd: Word): HWnd;

      передав первым параметром ссылку на окно своего приложения, а вторым - константу GW_HWNDFIRST, получить ссылку на первое окно в списке окон. И затем, с помощью этой же функции, но передавая уже ссылку на найденное окно и константу GW_HWNDNEXT получить следующую ссылку и так, до тех пор, пока функция не вернет значение равное нулю.

      В процессе получения ссылок следует проверять:

      • имеет ли окно заголовок;
      • видимо ли окно;
      • не дочернее ли окно (если необходимо).

      Пример:

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

      procedure TForm1.Button1Click(Sender: TObject);
      VAR

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

      begin

        ListBox1.Clear;
        Wnd := GetWindow(Handle, gw_HWndFirst);
        WHILE Wnd <> 0 DO BEGIN {Не показываем:}

          IF (Wnd <> Application.Handle) AND {-Собственное окно}

            IsWindowVisible(Wnd) AND {-Невидимые окна}
            (GetWindow(Wnd, gw_Owner) = 0) AND {-Дочернии окна}
            (GetWindowText(Wnd, buff, sizeof(buff)) <> 0) {-Окна без заголовков}

          THEN BEGIN

            GetWindowText(Wnd, buff, sizeof(buff));
            ListBox1.Items.Add(StrPas(buff));

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

        END;
        ListBox1.ItemIndex := 0;

      end;

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


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



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