Ver Mensaje Individual
  #2  
Antiguo 21-05-2010
vejerf vejerf is offline
Miembro
 
Registrado: ene 2007
Posts: 206
Reputación: 18
vejerf Va por buen camino
Solucionado!!!

Para quien le interese le dejo como lo he solucionado.

He averiguado la clase de la aplicación mediante la utilidad WinID que entre otra información te da la clase y el handle de la ventana sobre la que pones el cursor.

Entonces, en el evento OnCreate he ejecutado la aplicación mediante la función ejecutar encontrado en los trucos.

A continuación en el evento OnShow he buscado con FindWindow la clase obtenida anteriormente con el WinID. Con esto obtengo el handle de la ventana y a continuación pues he usado el SetParent y el SetWindowsPos sin ningún problema.

Código Delphi [-]
procedure TPForm.FormCreate(Sender: TObject);
begin

  Ejecutar(NombreAplicacion,nil,5000);    
  Sleep(2000);

end;

procedure TPForm.FormShow(Sender: TObject);
var
  PHandle : THandle;
begin
  ...
  PHandle := FindWindow(ClaseVentanaObtenidaConWinID,nil);
  Windows.SetParent(PHandle, PanelContenedor.Handle);
 SetWindowPos(PHandle,HWND_TOP,Left,Top,Width,Height,SWP_SHOWWINDOW);
  ...
end;

Quizás haya alguna otra forma de hacerlo, pero a mí al menos así me funciona.

Saludos!
__________________
"Patientia et constantia taelecum"
Responder Con Cita