Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Получение списка активных процессов в Win9x/Me [D6, Win95/98]


Renegate ©   (2003-05-16 11:38:00) 

Здраствуйте! Мастера подскажите как получить список активных компанентов Windows, если можно то на римере.


Mischka   (2003-05-16 12:59:00) [1]

Вот, типа. Разбирайся:

unit Main;

interface

uses
Windows, Messages, Forms, SysUtils,
TLHelp32, Classes, ExtCtrls, Controls, ComCtrls;

type
TForm1 = class(TForm)
Timer1: TTimer;
ListView1: TListView;
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
isNT: boolean;
procedure fillTable(Process32: TProcessEntry32);
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.fillTable(Process32: TProcessEntry32);
var
Item: TListItem;
begin
Item:=ListView1.Items.Add();
if isNT then Item.Caption:=Process32.szExeFile // Имя процесса
else Item.Caption:=extractFileName(Process32.szExeFile);
Item.SubItems.Add(IntToStr(Process32.th32ProcessID)); // ID процесса
Item.SubItems.Add(IntToStr(Process32.cntThreads)); // Потоки
Item.SubItems.Add(IntToStr(Process32.th32ParentProcessID)); // ID родителя
Item.SubItems.Add(IntToStr(Process32.pcPriClassBase)); // Приоритет
end;

procedure TForm1.Timer1Timer(Sender: TObject);
var
Process32: TProcessEntry32;
SS: THandle;
Next: BOOL;
begin
Process32.dwSize:=SizeOf(TProcessEntry32);
SS:=createToolHelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if Process32First(SS, Process32) then
begin
ListView1.Clear;
fillTable(Process32);
repeat
Next:=Process32Next(SS, Process32);
if Next then fillTable(Process32)
until not Next
end;
CloseHandle(SS);
Application.ProcessMessages()
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
isNT:=Win32Platform=VER_PLATFORM_WIN32_NT
end;

end.


MBo   (2003-05-16 12:48:00) [2]

см. ToolHelp32 функции


Наверх

Титульная страница Поиск, карта сайта Написать письмо