FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
Error de Aplicación al cerrar Windows
Saludos a todos.
Tengo desarrollada una aplicación la cual ejecuta con un timer un fichero de lote (.bat), el problema en si es que si cierro la aplicación no me da error, pero al cerrar Windows y la aplicación de esta ejecutando me devuelve un error que indica que cmd.exe no se ha ejecutado correctamente y pulse aceptar para cerrarlo, si modifico el intervalo del timer de 1000 a 5000 puede que no aparezca el error o en otros casos si aparece en el caso de que este en 1000 siempre se muestra el error. agradezco de antemano su ayuda a continuación agrego el código de la Unit 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. |
#2
|
||||
|
||||
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...
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
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 |
#3
|
||||
|
||||
La idea del programa es que cada un tiempo determinado borre los archivos exe y dll de un directorio y la solución que encontre era la de ejecutar un fichero lote.
Salu2 |
#4
|
||||
|
||||
Ok
Cita:
Si me equivoco, y borras archivo por archivo siendo los nombres conocidos y la cantidad contada, pues puedes usar la API: 'DeleteFile' que no acepta comodines. PD: Disculpa el retraso de la respuesta pero estaba programando. Suerte! |
|
|
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 |
|