Список процессов в Windows

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Ответить
Аватара пользователя
bloodlines
постоялец
Сообщения: 100
Зарегистрирован: 05.11.2008 10:26:19

Список процессов в Windows

Сообщение bloodlines »

Подскажите пожалуйста, как можно получить список запущенных процессов в WinXP 32? И как "убить" процесс зная его имя?
modjo
новенький
Сообщения: 92
Зарегистрирован: 19.07.2009 15:52:10
Откуда: Москва

Сообщение modjo »

Как раз сегодня встретил: http://www.webdelphi.ru/2010/01/rabota- ... psapi-pas/
Padre_Mortius
энтузиаст
Сообщения: 1265
Зарегистрирован: 29.05.2007 17:38:07
Откуда: Спб

Сообщение Padre_Mortius »

Можно так

Код: Выделить всё

uses ..., JwaTlHelp32;

....

var

   c1, c2:Cardinal;

   pe, pe1:TProcessEntry32W;

   Node, Node1: TTreeNode;

begin

   c1:=CreateToolHelp32Snapshot(TH32CS_SnapAll,0);

   if c1=-1 then

   begin

     ShowMessage('Error');

     Close;

   end;

   pe.dwSize:=sizeof(pe);

   Node := TreeView1.Items.AddFirst(nil, 'Process');

   if Process32FirstW(c1,pe) then

   repeat

     Node1 := TreeView1.Items.Add(Node, pe.szExeFile);

     if pe.cntThreads<>0 then

     begin

       c2 := CreateToolHelp32Snapshot(TH32CS_SnapAll,pe.th32ProcessID);

       if c1<>-1 then

       begin

         pe1.dwSize := SizeOf(pe1);

         repeat
         

           TreeView1.Items.AddChild(Node1, pe1.szExeFile);

         until not Process32NextW(c2, pe1);

       end;

     end;

   until not Process32NextW(c1,pe);

   CloseHandle(c1);

end;
Ответить