Ver Mensaje Individual
  #1  
Antiguo 17-03-2008
Edgtho Edgtho is offline
Miembro
 
Registrado: abr 2006
Posts: 47
Reputación: 0
Edgtho Va por buen camino
Restaurar otra aplicacion y no morir en el intento

Recupero el hilo iniciado hace ya dos años aqui
http://www.clubdelphi.com/foros/show...ght=sw_restore


Por que me encuentro en la misma tesitura. Cuando ejecutas

ShowWindow(hApp, SW_RESTORE);


donde hApp es el handle de la otra aplicacion, parece que funciona pero el boton minimizar se queda muerto total.

Aqui os dejo tooodas las combinaciones posibles que he intentado rebuscando entre foros

Código:
var
    hApp: Cardinal;
  FgThreadId  : DWORD;
  AppThreadId : DWORD;
begin
    hApp := fmMain.FindWindowByTitle([titulo aplicacion]);

//    SendMessage(hApp,CM_RESTORE,0,0);
//    ShowWindow(hApp, SW_SHOW); //despues la aplicacion no puede minimizarse;
//    ShowWindow(hApp, SW_SHOWNORMAL); //despues la aplicacion no puede minimizarse;

  FgThreadId  := GetWindowThreadProcessId(GetForegroundWindow, nil);
  AppThreadId := GetWindowThreadProcessId(hApp, nil);
  AttachThreadInput(AppThreadId, FgThreadId, true);

  ShowWindow(hApp, SW_RESTORE); // despues la aplicacion no puede minimizarse;
  SetForegroundWindow(hApp);
  AttachThreadInput(AppThreadId, FgThreadId, false);

    //SetForeGroundWindow(hApp);
//    PostMessage(hApp,CM_RESTORE,0,0);
//    SendMessage(hApp,WM_ACTIVATE,0,0);
//    SendMessage(hApp,SW_RESTORE,0,0);
//    SendMessage(hApp,CM_RESTORE,0,0);
    //Application.ProcessMessages;

Si es que no puede ser tan dificil pero no hay manera de encontrarlo, solo fijaros en lo extravagante de mi ultimo intento (lineas no comentadas). Si me podeis ayudar os lo agradecere un webo y parte del otro.

un saludo
__________________
Dios es real a menos que sea declarado entero
Responder Con Cita