Prueba con esto o algo parecido...
Yo lo utilizaba para ver si habia una serie de procesos en ejecución y si era así, los echaba abajo. Esta parte es la que recorre todos los procesos... Aunque para sacar la lista, tal vez sobre alguna linea:
var
ContinueLoop:BOOL;
FSnapshotHandle:THandle;
FProcessEntry32:TProcessEntry32;
begin
FSnapshotHandle:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
FProcessEntry32.dwSize:=Sizeof(FProcessEntry32);
ContinueLoop:=Process32First(FSnapshotHandle,FProcessEntry32);
while integer(ContinueLoop)<>0 do
begin
lista.items.add(FProcessEntry32.szExeFile);
ContinueLoop:=Process32Next(FSnapshotHandle,FProcessEntry32);
end;
CloseHandle(FSnapshotHandle);
end;
Hasta luego!
|