Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-04-2006
Avatar de PoZi
PoZi PoZi is offline
Miembro
 
Registrado: abr 2006
Posts: 11
Poder: 0
PoZi Va por buen camino
A probar

Gracias seoane.
Probaré lo que me dices y ya os contaré.
Es algo parecido a lo que yo quería hacer con la diferencia de que yo le quería enviar el mensaje WM_CLOSE para que se ejecutase el evento OnCloseQuery, pero como el lanzador no tiene ventana no he podido enviárselo o no sé.
Hasta luego¡¡¡
Responder Con Cita
  #2  
Antiguo 26-04-2006
Avatar de PoZi
PoZi PoZi is offline
Miembro
 
Registrado: abr 2006
Posts: 11
Poder: 0
PoZi Va por buen camino
Smile Por fin

Muy Buenas a todos¡¡¡
Por fin ha funcionado. Ha costado sudor y lágrimas, pero bueno todavía no quiero echar las campanas al vuelo porque no lo he probado profundamente.
Me ha funcionado de dos formas:
1ª.- Mandando el mensaje WM_CLOSE al lanzador para que al recibirlo cierre windows:
Código Delphi [-]
{ Esto va en la aplicación principal }
procedure TForm1.CerrarProceso;
var
  IdVentana: HWnd;
begin
  IdVentana := FindWindow(nil, 'Lanzador');
  SendMessage(IdVentana, WM_CLOSE, 0, 0);
end;
 
{ Y esto en el lanzador }
procedure TForm1.WMQueryEndSession(var Msg: TWMQueryEndSession);
begin
  WinSesionFin := true;
  inherited;
end;
procedure TForm1.WMEndSession(var Msg: TWMEndSession);
begin
  WinSesionFin := Msg.EndSession;
  inherited;
end;
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
  if WinSesionFin then
    begin
      EnvioMensaje; { Envia HotKey a Aplicación principal para que guarde los datos de salida }
      WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
      CanClose := true;
    end
  else
    begin
      ExitWindowsEx(EWX_FORCE,0);
      Application.Terminate;
    end;
end;
Initialization
  Application.Title:='Lanzador';
  Application.ShowMainForm:=False;

No me funcionaba porque tenía puesto Application.Title:=''; y además yo pensaba que como no tenía ventana activa, pues usaba Application.ShowMainForm:=False; ), no le podía enviar el mensaje.

2ª.- Igual que antes pero enviando un HotKey al lanzador (como indica arriba seoane), en lugar de WM_CLOSE. Cuando el lanzador lo detecta Cierra Windows y se cierra él.

Muchas Gracias a todos, sobretodo a Lepe que le he estado dando la tabarra durante bastante tiempo.
Saludos.

Última edición por PoZi fecha: 03-05-2006 a las 20:49:13.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Dar privilegios del SYSDBA a otro usuario Eolo Firebird e Interbase 3 21-03-2004 05:48:15
Roles - Usuarios y privilegios Osorio Firebird e Interbase 2 13-02-2004 23:34:31
Privilegios en interbase acrophet Conexión con bases de datos 1 09-02-2004 15:07:35


La franja horaria es GMT +2. Ahora son las 19:13:13.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi