Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #2  
Antiguo 04-06-2007
Avatar de cHackAll
[cHackAll] cHackAll is offline
Baneado?
 
Registrado: oct 2006
Posts: 2.159
Poder: 22
cHackAll Va por buen camino
Cool Ok

Huuyyy... Para la proxima procura hacer "Vista previa" para que el código no este de esta forma, pues es bastante molesto para quien te ayude hacer algo sin entender el problema...

Código Delphi [-]
unit Unit1;
 
interface
 
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, AppEvnts;
 
type
 TForm1 = class(TForm)
    Timer1: TTimer;
    ApplicationEvents1: TApplicationEvents;
  procedure FormCreate(Sender: TObject); 
  procedure Timer1Timer(Sender: TObject); 
  procedure FormPaint(Sender: TObject); 
 private { Private declarations }
  procedure WMQueryEndSession(var Msg: TWMQueryEndSession); message WM_QUERYENDSESSION;
 public { Public declarations } 
end; 
 
var
 Form1: TForm1; 
 app, cmd: Integer;
 
implementation
 
{$R *.dfm}
 
procedure TForm1.WMQueryEndSession(var Msg: TWMQueryEndSession);
begin
 try
  app:= 1;
  Msg.result := 1; 
 finally 
  halt;
 end; 
end; 
 
procedure TForm1.FormCreate(Sender: TObject); 
begin 
 app:=0; 
 cmd:=FindWindow(nil,'C:\WINDOWS\system32\cmd.exe'); 
end; 
 
procedure TForm1.Timer1Timer(Sender: TObject); 
begin 
 if app = 0 then
  begin 
   if cmd = 0 then 
    WinExec(PChar('clean.bat'),SW_HIDE); 
  end 
 else 
  begin 
   app:= 1; 
  end; 
end; 
 
procedure TForm1.FormPaint(Sender: TObject); 
begin 
 Form1.Hide; 
end; 
 
end.

Tengo algunos comentarios del código, por ejemplo no me queda muy claro para qué utilizas un TApplicationEvents...

La segunda, el mensaje WM_QUERYENDSESSION y por consiguiente el método WMQueryEndSession ya están definidos en el evento OnCloseQuery... no es necesario volverlo a definir!!!

Otra cosilla, cuando haces
Código Delphi [-]
 if app = 0 then
  begin
   if cmd = 0 then
    WinExec(PChar('clean.bat'),SW_HIDE);
  end
 else
  begin
   app:= 1;
  end;

no es necesario el else... no estas copiando todo el código? tampoco veo que sea funcional la variable "cmd"...

Cuando el Güindos va cerrando las aplicaciones (ventanas), y luego los procesos, cada cual ejecuta un grupo propio de procedimientos de "salida", en el cual libera memoria, cierra archivos, termina Timers, etc...

Ahora el que esta produciendo el error más que ser tu aplicacion, es el CMD... cuando cierras sesion, con el fin de cerrar sesion, apagar o reiniciar o al fin lo que sea, todos los procesos excepto algunos como el lsass.exe son finalizados uno por uno (como ya comente)... cuando tu intentas correr algo y ya no "se puede" pues ya no hay "soporte" para ésta, pues habran un buen numero de errores... cuentanos que hace tu batch?

Te pregunto pues estoy casi seguro que hay alguna forma mas sencilla y mejor de solucionar el problema y hacer lo que hace el batch.

Saludos
Responder Con Cita
 



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
Error al cerrar la aplicación sagarmar Varios 2 22-02-2007 13:30:58
Error al cerrar mi aplicación busraglu Conexión con bases de datos 2 29-01-2007 21:55:09
Error al cerrar mi aplicación Albano OOP 1 08-12-2005 20:42:32
Error al cerrar la aplicación en RTL90.bpl Jesús Pena Varios 0 24-11-2005 11:27:08
Error al cerrar la aplicacion!! Waldo API de Windows 2 22-11-2003 00:39:12


La franja horaria es GMT +2. Ahora son las 14:54:18.


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