![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Процессы [D7, WinXP]
Grief © (2005-08-10 22:56:00)Как получить список всех процессов - раз, как узнать расход процессора и памяти на них два. Плюс если еще чтото по процессу можно узнать - тоже можете сказать. Спасибо.
Grief (2005-08-11 10:46:00) [21]А универсального и под нт и под 9х нет?
begin...end (2005-08-11 10:24:00) [22]> Kazakh (11.08.05 10:19) [2]
Это способ получения списка окон, а не процессов. Причём не самый лучший, поскольку цикл может зависнуть.
Digitman (2005-08-11 10:22:00) [23]
> Kazakh (11.08.05 10:19) [2]
и где в твоем коде хоть какое-либо упоминание о процессах ?
Kazakh (2005-08-11 10:19:00) [24]Получить список процессов
Поставь на форму список TListbox и кнопку TButton, по нажатию на кнопке напиши такой код:
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;
Digitman (2005-08-11 08:30:00) [25]1. Под НТ - см. psapi.pas (EnumProcesses), под Win9x - см. tlhelp32.pas (CreateToolhelp32Snapshot, Process32First/Next)
2. GetProcessWorkingSetSize()
3. Что конкретно ?