gluglu
08-10-2007, 17:35:55
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 :
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 :
const
WM_CLOSEUSERID = WM_USER + 102;
type
TWakeUp = class(TForm)
...
private
{ Private declarations }
procedure Close_UserID_Request(var Msg: TMessage); message WM_CLOSEUSERID;
public
{ Public declarations }
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 ?? :o
Garcias por vuestra ayuda.
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 :
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 :
const
WM_CLOSEUSERID = WM_USER + 102;
type
TWakeUp = class(TForm)
...
private
{ Private declarations }
procedure Close_UserID_Request(var Msg: TMessage); message WM_CLOSEUSERID;
public
{ Public declarations }
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 ?? :o
Garcias por vuestra ayuda.