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);
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.