Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-08-2007
Avatar de Wonni
Wonni Wonni is offline
Miembro
 
Registrado: abr 2006
Posts: 261
Poder: 19
Wonni Va por buen camino
Al evitar que cierren Windows, me sale la ventana de error "Finalizar Tarea" :(

Hola;

Llevo un par de dias dandole vuetas a este problema y no consigo solucionarlo ni encuentro nada de información.

Se trata de un programa que se ejecuta al iniciar Windows sin mostrarse la ventana ni en la barra de tareas.

Este programa es para interceptar cuando el usuario cierre Windows y cancelar el apagado. Mostrar una ventana diciendo si desea hacer copia de seguridad de (en este caso 3 programas) antes de apagar o simplemente apagar.

Interceptar el mensaje e impedir el apagado funciona bien, pero Windows muestra la ventana de Finalizar Tarea refiriendose a mi programa.

Utilizo el el truco de Trucomania:
http://www.q3.nu/trucomania/truco.cgi?31&esp

Si despues de asignar Msg.Result := 0 , le añado que cierre el programa, entonces ya no muestra la ventana y Windows no se cierra. Claro, no muestra la ventana porque no le da tiempo.
Pero entonces no me sirve el programa mas que para impedir que se cierre Windows sin mas. (como bromita esta bien, jeje). Pero el simple hecho de mostrar un Mensaje, no da tiempo a leerlo pues Sale la ventana de Finalizar Tarea.

Al ver que si cerraba la aplicacion, no salia el mensaje, pensé en solucionarlo asi:

2 Programas. El primero es que que se está ejecutando e intercepta el apagado de Windows. Lo impide, se cierra, pero llamando antes al segundo programa que es que hace la copia. ...... Peeeeeeeroooo ! otro ERROR:

"la aplicacion ha fallado al inicializarse debido a que la estacion de ventana se ha cerrado"

Al Segundo programa lo llamo asi:

WinExec(PChar(ExtractFilePath(Application.ExeName)+'RBackup.exe'),SW_SHOWNORMAL);

Esto es dentro del Procedure del mensaje:



Código Delphi [-]
procedure TFormprincipal.WMQueryEndSession(var Msg: TWMQueryEndSession);
begin
Msg.Result := 0;
WinExec(PChar(ExtractFilePath(Application.ExeName)+'RBackup.exe'),SW_SHOWNORMAL);


Close;
 
end;

Entonces quité el WinExec de aqui y lo puse en el Evento OnClose. ¿Que pasa?, pues que funciona y se ejecuta el segundo programa, pero vuelve a salir la ventana de Finalizar Tarea haciendo referencia ahora a este segundo programa ¿A cuento de que?

¿Alguna idea?, por que ya no se que hacer mas. Espero que podais hecharme una mano.

Gracias.
Responder Con Cita
  #2  
Antiguo 20-08-2007
Avatar de Wonni
Wonni Wonni is offline
Miembro
 
Registrado: abr 2006
Posts: 261
Poder: 19
Wonni Va por buen camino
He intentado hacerlo Iniciando otro Desktop, pero nada, la llamada a otro Desktop la hago sin problemas, pero si la llamo desde el Procedure que intercepta el cierre de Windows.

Investigando mas, he visto que se pueden programar scripts al inicio y cierre de Windows en las politicas de grupo (ejecutando gpedit.msc), pero eso es en XP Profesional y yo quiero esto para el Home.
Responder Con Cita
Respuesta



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
Porque sale este error "Error al copiar archivo o carpeta"? JuanErasmo API de Windows 1 18-11-2009 17:24:49
Ventana MDI, "Siempre visible" y "Pantalla completa" ixMike API de Windows 7 11-04-2007 18:36:55
Cinco normas para evitar el "phishing" marcoszorrilla Noticias 56 02-05-2006 21:07:55
Evitar navegar desde barra "Dirección" de MI PC Luis F. Orjuela API de Windows 1 10-02-2006 19:56:16
"enditall" finalizar aplicacs y procesos innecesarios para por ejemplo...editar video images API de Windows 7 20-09-2004 09:55:14


La franja horaria es GMT +2. Ahora son las 22:30:08.


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