Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 1 марта!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

БОЛЬШОЙ FAQ ПО DELPHI



как получить список всех запущенных процессов

[Ответ на вопрос Воробьёва Евгения]


Можно! Вообще, сделать можно всё, только бы найти как :-)))





Поставь на форму список TListbox и кнопку TButton, по нажатию на кнопке напиши такой код:

procedure TForm1.Button1Click(Sender: TObject);
var
Window:hWnd;
buffer: array [0..127] of char;
begin
ListBox1.Clear;
Window:=GetWindow(Handle,GW_HWNDFIRST);
while Window<>0 do begin
if (Window<>Application.Handle) and
IsWindowVisible(Window) and
(GetWindow(Window,GW_OWNER)=0) and
(GetWindowText(Window,buffer,sizeof(buffer))<>0)
then begin
GetWindowText(Window,buffer,sizeof(buffer));
ListBox1.Items.Add(StrPas(buffer));
end;
Window:=GetWindow(Window,GW_HWNDNEXT);
end;
ListBox1.ItemIndex:=0;
end;




Как это сделано?

С помощью функции GetWindow() мы находим первое окно находящееся в z-последовательности, дескриптор найденного окна помещаем в переменную Window Window:=GetWindow(Handle,GW_HWNDFIRST);


после этого нужно оценить "чё, собственно, мы там нашли" :))

сначала исключаем возможность добавления собственного окна в список

if (Window<>Application.Handle) and

потом скажем, что добавляем окно в список только если оно видимо

IsWindowVisible(Window) and

только если оно не является дочерним и имеет заголовок

(GetWindow(Window,GW_OWNER)=0) and
(GetWindowText(Window,buffer,sizeof(buffer))<>0)




И мол, только если найденное окно соответствует всем поставленным условиям, только тогда добавим его в список, после чего ищем следующее окно

Window:=GetWindow(Window,GW_HWNDNEXT);

и точно так же обрабатываем его.

Ну, вот и всё :)



--------------------------------------------------------------------------------




<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ



Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS