Hola de nuevo !
No entiendo por qué no me funciona el SendMessage en este caso, si por otro lado ayer con hilo diferente Seoane me dí una opción que me funcionó perfectamente.
A ver ...
En un formulario de mi aplicación principal pido un código de usuario. Después de introducirlo, y en el evento FormClose del Form correspondiente hago :
Código Delphi
[-]const
WM_CLOSEREQUEST = WM_USER + 102;
procedure TLogIn.FormClose(Sender: TObject; var Action: TCloseAction);
begin
fHandle := FindWindow(nil, 'Wake-Up');
if fHandle <> 0 then
SendMessage(fHandle, WM_CLOSEREQUEST, 0, 0);
...
...
end;
Y en la otra aplicación denomnidad Wake-Up lo que tengo es :
Código Delphi
[-]const
WM_CLOSEUSERID = WM_USER + 102;
type
TWakeUp = class(TForm)
...
private
procedure Close_UserID_Request(var Msg: TMessage); message WM_CLOSEUSERID;
public
end;
procedure TWakeUp.Close_UserID_Request(var Msg: TMessage);
begin
if Assigned(WakeUp1) then begin
WakeUp1.Free;
WakeUp1 := nil;
end;
end;
Pues bien, no entra nunca en el procedimiento TWakeUp.Close_UserID_Request, aun habiendo comprobado que el fHandle obtenido en la aplicación que 'manda' el mensaje es diferente de 0 y que pasa correctamente por SendMessage.
Qué estoy haciendo mal ??
Garcias por vuestra ayuda.