Ver Mensaje Individual
  #11  
Antiguo 08-07-2010
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Reputación: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Perdón, ese código pertenece a una clase y aislado pierde sentido. Pongo el código aislado e independiente. Devuelve el listado en un TStrings con lo que se podrá usar un TMemo, TListBox, o cualquier objeto que tenga un TStringList.

Lo he probado en Windows XP 32 bits y Windows 7 64 bits pero no en Vista.

Se que es equivalente a CreateWin9xProcessList. Quizás el proceso global de listado sólo deba llamar a CreateWin9xProcessList y éste procedimiento debería perder el -Win9x- de su nombre, para evitar confusiones.

Código Delphi [-]
procedure ProcList(Lista: TStrings);
var
   FSnapshotHandle: THandle;
   FProcessEntry32: TProcessEntry32;
begin
   Lista.Clear;
   FSnapshotHandle:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
   FProcessEntry32.dwSize:=Sizeof(FProcessEntry32);
   if FSnapshotHandle <> THandle(-1) then
   begin
     if Process32First(FSnapshotHandle, FProcessEntry32) then
     begin
       repeat
          Lista.Add(FProcessEntry32.szExeFile);
       until not Process32Next(FSnapshotHandle, FProcessEntry32);
     end;
     CloseHandle(FSnapshotHandle);
   end;
end;

Saludos.

Última edición por escafandra fecha: 08-07-2010 a las 21:30:34.
Responder Con Cita