FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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 |
#3
|
|||
|
|||
Yo probaría esta función:
Handle debe ser el handle de la aplicación y no de la ventana principal. Bye |
#4
|
|||
|
|||
KeyBoy lo que habias puesto era lo mismo que tenia yo, jejeje. La respuesta me la ha dado chackall, enviandole el comando SC_RESTORES justo antes del ShowWindow ha funcionado sin problemas.
Código:
hApp := fmMain.FindWindowByTitle([titulo aplicacion]); SendMessage(hApp, WM_SYSCOMMAND, SC_RESTORE, 0); ShowWindow(hApp, SW_RESTORE);
__________________
Dios es real a menos que sea declarado entero |
#5
|
|||
|
|||
Curioso, porque yo hago esa misma pueba y no funciona. En fin, cada Windows es un mundo.
Bye |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Instalar Debian, 3er intento y fallido otra vez :( | Wonni | Linux | 7 | 24-06-2007 00:35:31 |
Restaurar Ventana desde otra aplicación | Sr_Sombrero | API de Windows | 4 | 06-04-2006 15:17:30 |
¿Como usar Roles con BDE y no morir en el intento? | Grimmy80 | Firebird e Interbase | 1 | 28-11-2003 21:32:28 |
Como usar Roles con BDE y no morir en el intento? | Grimmy80 | Conexión con bases de datos | 0 | 27-11-2003 17:04:22 |
|