![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как получить идентификаторы всех процессов в ситеме. [D5, Win95/98]
Максим © (2003-10-03 11:24:00)
Как получить идентификаторы всех процессов в ситеме (W98).
Чтоб в последствии прибить какой-нибудь из них (TerminateProcess).
GH@ST (2003-10-05 10:29:00) [1]
http://www.xakep.ru/post/19059/default.htm
Davinchi (2003-10-04 11:29:00) [2]
Получение списка всех процессов будет выглядеть примерно так:
procedure TForm1.Button1Click(Sender: TObject);
var handler:thandle;
data:TProcessEntry32;
function return_name:string;
var i:byte;
names:string;
begin
names:="";
i:=0;
while data.szExeFile[i] <> "" do
begin
names:=names+data.szExeFile[i];
inc(i);
end;
return_name:=names;
end;
begin
handler:=createtoolhelp32snapshot(TH32CS_SNAPALL,0);
if process32first(handler,data) then begin
listbox1.Items.add(return_name);
while process32next(handler,data) do
listbox1.Items.add(return_name);
end
else
showmessage("Ошибка получения информации :)");
end;
Guerrillero (2003-10-04 01:05:00) [3]
2 Crowman (03.10.03 23:58)
Вообще-то это для окон, а вопрос касался процессов
Crowman (2003-10-03 23:58:00) [4]
Увидишь ты не всё, но что-то увидишь :)
--------------------------
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 (GetWindowText(Wnd, buff, sizeof(buff)) <> 0) then begin
GetWindowText(Wnd, buff, sizeof(buff));
ListBox1.Items.Add(inttostr(Wnd) + " - " + StrPas(buff));
end;
Wnd := GetWindow(Wnd, gw_hWndNext);
END;
ListBox1.ItemIndex := 0;
end;
Игорь Шевченко (2003-10-03 12:15:00) [5]
TOOLHELP