PDA

Ver la Versión Completa : Que se ejecute mi aplicación a una hora


GliceMan
02-02-2005, 11:45:25
Hola, tengo que hacer una aplicación que se ejecute a las 12 de la noche, y no se como hacerlo. He leido por el foro que lo haga con el administrador de tareas de Windows, pero me gustaria hacerlo un poco mas profesional, que se me quedara minimizado al lado del reloj y que se ejecutara a las 12 de la noche.

Os comento un poco lo que quiero hacer:

Tengo un modem conectado a una centralita de telefonos que me recoge la tarificación, y un modem interno en otro PC. Lo que quiero es que el modem del pc llame a las doce de la noche al otro modem, este me mande la tarificación que tiene almacenada la centralita, y mi aplicación recoja esa información y me la guarde en un archivo de texto.

No se como hacer que mi aplicación se ejcute a las 12 de la noche y se me quede minimizada al lado del reloj.

Un saludo Gracias.

Lepe
02-02-2005, 12:03:52
Para hacerla "profesional", deberías incluirlo en el registro de windows, la clave era "local_machine\software\microsoft\windows\currentversion\run"

El tema de junto al reloj, hay muchos componentes TrayIcon, desde las RXLibs, JVCL, LMDTOOLS, etc.

Para el tema de la hora, un simple chequeo de la hora a la que se arranca tu programa, restando de la media noche, debe darte los milisegundos que faltan. Un timer debe bastarte para ese propósito.

Saludos

GliceMan
02-02-2005, 12:13:10
Gracias por responder tan pronto, pero, soy un poco novato y no tengo muy claro como trabajar con el registro.

El tema del timer tampoco lo he entendido muy bien, me pongo un timer y que hago con el ¿como chequeo la hora que es? y como lo ejecuto cuando lleguen las doce.

Gracias de nuevo.

Lepe
02-02-2005, 12:34:30
- Busca por el foro TRegistry, se ha hablado ya mucho sobre como introducir información en el registro de windows:

- Para la hora Mira las funciones que trae Delphi:
Now --> te da la fecha y hora actual
EncodeDateTime , encodeTime etc.... Tienes muchas funciones para ver la mediaNoche, revisa en la ayuda todas las funciones de la unidad DateUtils.

Mas o menos y de memoria sería algo así:

var ahora, mediaNoche :Tdatetime;
faltanMilisegundos:int64;
begin
ahora := now;
medianoche := ahora
medianoche := encodeTime(23,59,59,999); // a la fecha actual, le cambio la hora

faltanMilisegundos:= MillisecondsBetween(mediaNoche, ahora);
timer1.Interval := faltanMilisegundos;
timer1.enabled:= true;


SAludos

Lepe
02-02-2005, 12:41:28
Perdon, en lugar de usar Encodetime, usa RecodeTime ;)

bye

Lepe
02-02-2005, 12:50:15
que desorganizado soy, por favor.... :D

- coloca un Timer en tu ventana,
- en el Oncreate de la ventana principal, escribe ese código, la linea correcta es: medianoche := recodetime(medianoche,23,59,59,999);

señala el timer, y en su evento OnTimer, escribe: ShowMessage('llegó la medianoche');

- Ejecuta el programa y espera a que llege la media noche para ver el mensajito ;) :p


Para el tema del icono junto al reloj, busca en www.torry.net "trayicon"

enga, saludos de nuevo.

GliceMan
04-02-2005, 11:07:42
Muchas Gracias Lepe me ha funcionado de Lujo,lo unico que no he usado es el componente Trayicon, por que encontre un truco en trucomania que me hacia lo mismo, pero estuve viendo el componente y tambien me hubiera valido.:D


Lo dicho muchas gracias por tu ayuda y Un saludo.