![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Открытие и закрытие чужого приложения. [D5, D6]
чайник2 © (2002-08-23 15:53:00)Уважаемые Мастаки!!! ПОМОГИТЕ!!!
Как программным образом можно опредилить запустилось или закрылось чужое приложение?
Dm9 (2002-08-25 04:54:00) [1]Процедура выведет в листбокс все окна. Если чужого приложения нет в таскбаре - убей условие, запрещающее показ невидимых окон. Прогуляешься по полученному списку - и определишь, запущено ли, закрыто нужное приложение.
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;