Ver Mensaje Individual
  #2  
Antiguo 02-05-2006
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Reputación: 26
delphi.com.ar Va por buen camino
Supongo que ese código lo obtuviste de aquí, y si te fijas lo que esta haciendo, es enumerando todas las ventanas indicando a que proceso pertenece cada una.
A la pregunta de cómo obtener proceso de una ventana, la respuesta es utilizando GetWindowThreadProcessId. Si quieres saber el nombre del ejecutable de un proceso, sin buscar si existe alguna función que lo resuelva, se me ocurre algo tan sencillo como:
Código Delphi [-]
function GetExeNameByProcessId(dwProcessId: DWORD): string;
var
  snp: THandle;
  lppe: TProcessEntry32;
begin
  Result := '';
  snp := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
  try
   lppe.dwSize:=SizeOf(lppe);
   if Process32First(snp, lppe) then
     repeat
       if lppe.th32ProcessID = dwProcessId then
       begin
         Result := StrPas(lppe.szExeFile);
         Break;
       end;
     until not(Process32Next(snp, lppe));
  finally
    CloseHandle(snp);
  end;
end;
Tendrías que reemplazar GetWindowModuleFileName por esta función.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita