Edgtho
17-03-2008, 21:02:38
Recupero el hilo iniciado hace ya dos años aqui
http://www.clubdelphi.com/foros/showthread.php?t=30403&highlight=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
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
http://www.clubdelphi.com/foros/showthread.php?t=30403&highlight=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
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