Ver Mensaje Individual
  #2  
Antiguo 16-11-2006
Avatar de aeff
aeff aeff is offline
Miembro
 
Registrado: oct 2006
Ubicación: Cuba, Guantánamo
Posts: 348
Reputación: 18
aeff Va camino a la fama
prueba con esto

si a lo que te refieres es a lo que yo entendí, entonces te diré que puedes obtener los nombres de los procesos de la siguiente manera,

colocas primeramente un Listview con dos columnas, ID y Name del proceso:

implementas esta función para obtener los procesos, y sus dos descripciones anterior:

Código Delphi [-]
 
procedure GetMemoryProcess();
var
 foto: Cardinal;
  datos: tagPROCESSENTRY32;
  r: Integer;
begin
 r := 1;
  datos.dwSize := sizeOF(tagPROCESSENTRY32);
  foto := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  while Process32Next(foto, datos) do
   begin
      Form1.ListView1.Items.Add.Caption := IntToStr(datos.th32ProcessID);
   Form1.ListView1.Items[r -1].SubItems.Add('EXE: '  + datos.szExeFile);
     inc(r);
    end;
 CloseHandle(foto);
end;

ahora, para la parte de obtener los subprocesos o los modulos cargados por un proceso, puedes implementar esta otra función:

Código Delphi [-]
  
procedure GetModulesProcess(idProcess, tData: Integer);
var
 foto: Cardinal;
  datos: tagMODULEENTRY32;
  r: Integer;
begin
 foto := CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, idProcess);
 r := 1;
  datos.dwSize := sizeOf(tagMODULEENTRY32);
  while Module32Next(foto, datos) do
   begin
     case tData of
       1: ShowMessage(IntToStr(datos.hModule));
       2: ShowMessage(datos.szModule);
       3: ShowMessage(datos.szExePath);
    end;
      inc(r);
    end;
 CloseHandle(foto);
end;

el primer parámetro de esta última funcion es para obtener los subprocesos del proceso que tenga el ID especificado, por ejemplo el 456, winlogon.exe...

y el segundo parámetro de esta función es para mostrar en un mensajito la descripción del subproceso:
1 => Handle
2 => Nombre
3 => Path + name

espero que te funcione...

Última edición por dec fecha: 16-11-2006 a las 05:47:31.
Responder Con Cita