Ver Mensaje Individual
  #1  
Antiguo 02-05-2006
Thor Thor is offline
Registrado
 
Registrado: jul 2004
Posts: 6
Reputación: 0
Thor Va por buen camino
Obtener proceso de una ventana.

Estaba enumerando las ventanas del sistema operativo, lo que queria era saber a que proceso corresponde una ventana, os pongo codigo:

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
begin
  EnumWindows(@EnumProcess, 0);
end;

Código Delphi [-]
function EnumProcess(hHwnd: HWND; lParam : integer): boolean; stdcall;
var
  pPid : DWORD;
  title : array [0..255] of char;
  Ruta : array [0..MAX_PATH] of char;
begin
  if (hHwnd=NULL) then
  begin
    result := false;
  end
  else
  begin
    GetWindowThreadProcessId(hHwnd,pPid);
    GetWindowText(hHwnd, title, 255);
    //Esto no funciona bien
    GetWindowModuleFileName(hHwnd, Ruta, MAX_PATH);
    ShowMessage(title+' - '+Ruta+' - '+IntToStr(pPid));
    Result := true;
  end;
end;

Yo pensaba que usando GetWindowModuleFileName y pasandole el handle de la ventana me daria el proceso pero no funciona asi.

¿Que hago mal? ¿Que handle hay que pasarle a GetWindowModuleFileName?

Saludos.
Responder Con Cita