Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-05-2005
valera valera is offline
Miembro
 
Registrado: abr 2005
Posts: 39
Poder: 0
valera Va por buen camino
ejecutar aplicación cada hora

Hola foro, espero que me puedan ayudar, estoy haciendo un sistema para un centro de computo y el rrollo es el siguiente:El centro empieza a dar servicio a partir de las 7 de la mañana, todos los usuarios reservan las pc´s por una hora, entonces cuando sean a las 8,9,10,11,etc en punto, el sistema tiene que cerrar todas las aplicaciones abiertas y deshabilitar los iconos del escritorio y mostrar la ventanita de acceso para que los usuarios que están trabajando nuevamente se registren.
cabe mencionar que en el momento de encender las maquinas y despues de cargar el S.O automaticamente se ejecuta la aplicación para que el usuario registre sus datos,ahora despues de que éste se resgistró,el sistema se minimiza en la barra de tareas, es decir que unavez encendida la maquina el sistema siempre va a estar en ejecución y cada vez que se llegue la hora el sistema se muestra.
Lo estoy intentando con timer pero todavia no encuentró como hacerle para que se visualize a la cada hora, tomando en cuenta que todas las maquinas se prenden exactamente a las 7. Por ejemplo un usuario puede encender la maquina 7:30 y a las 8 el sistema ya debe de deshabilitar todo.
Espero que alguien del foro me pueda ayudar y gracias.
Responder Con Cita
  #2  
Antiguo 03-05-2005
jafl1965 jafl1965 is offline
Miembro
 
Registrado: may 2003
Ubicación: Morelia, México
Posts: 170
Poder: 21
jafl1965 Va por buen camino
Te servirá el programador de tareas de Windows?
O en su defecto, con el timer ir leyendo la hora del sistema y si se cumple tu condición entonces haces lo que necesitas.
Responder Con Cita
  #3  
Antiguo 04-05-2005
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 22
Crandel Va por buen camino
Post

Hola, podes cada un minuto ir controlando la hora del sistema.
El timer tiene su intervalo en milisegundos, asi que debe valer 60000.
La hora la podes preguntar con la función "time" (creo que llamaba asi).
Luego tenes la funcion DecodeTime que te devuelve la hora,min y seg.
Chaqueas que haya pasado una hora de la ultima vez y listo

Suerte
__________________
[Crandel]
Responder Con Cita
  #4  
Antiguo 04-05-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Código Delphi [-]

NextAlert := RecodeTime(Now, Hourof(now)+1,0,0,0); // a la hora siguiente en punto 
Faltan := millisecondsBetween(NextAlert, Now);
if faltan >0 then
begin
  timer1.interval := faltan;
  timer1.Enabled := true;
end

Creo que las rutinas estan en la unidad DateUtils.

Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 04-05-2005 a las 11:48:54.
Responder Con Cita
  #5  
Antiguo 05-05-2005
Avatar de razek
razek razek is offline
Registrado
 
Registrado: abr 2005
Ubicación: Mexico
Posts: 3
Poder: 0
razek Va por buen camino
Question Talves pueda funcionarte esto tambien.

Puedes poner una condicion como la siguiente
if ((TimeToStr(Time)='08:00:00 a.m.') or (TimeToStr(Time)='09:00:00 a.m.') or (TimeToStr(Time)='10:00:00 a.m.') or (TimeToStr(Time)='11:00:00 a.m.')or (TimeToStr(Time)='12:00:00 p.m.')) then {... Codigo que desees ejecutar}
Solo agrega las demas horas que quieras.


Bueno ojala esto pueda servir

bye
Responder Con Cita
  #6  
Antiguo 06-05-2005
valera valera is offline
Miembro
 
Registrado: abr 2005
Posts: 39
Poder: 0
valera Va por buen camino
Hola lepe

Disculpa que te moleste una vez mas, el codigo que me sugeriste efectivamente me da la siguiente hora en punto, pero ahora como le hago para comparar esta hora hora con la del sistema. Por tu ayuda muchas gracias
Responder Con Cita
  #7  
Antiguo 06-05-2005
Avatar de Crandel
[Crandel] Crandel is offline
Miembro Premium
 
Registrado: may 2003
Ubicación: Parana, Argentina
Posts: 1.475
Poder: 22
Crandel Va por buen camino
Dentro del codigo que te escribio arriba razek (esta la comparación) y yo tambien te lo comente arriba, la función Time es la que te devuelve la hora del sistema.

Tené cuidado con la expresión de arriba, porque es dependiente de la configuración de la hora de la maquina. dado que a veces te devuelve la hora en formato de 24hs.

El otro inconveniente, es que es muy improbable que tu expresión se ejecute exactamente en cada hora, salvo que tu expresión la evalues cada medio segundo, lo cual es un desperdicio, para ejecutar un accion que se realiza una ves por hora.

Suerte
__________________
[Crandel]
Responder Con Cita
  #8  
Antiguo 07-05-2005
valera valera is offline
Miembro
 
Registrado: abr 2005
Posts: 39
Poder: 0
valera Va por buen camino
Ya encontré la solucion, gracias

Por todo su ayuda gracias, nada mas le quiero pedir otro favor si saben algo o tienen idea acerca de como cerrar varias aplicaciones abiertas desde delphi.
Responder Con Cita
  #9  
Antiguo 07-05-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Cita:
Empezado por Crandel
El otro inconveniente, es que es muy improbable que tu expresión se ejecute exactamente en cada hora, salvo que tu expresión la evalues cada medio segundo, lo cual es un desperdicio, para ejecutar un accion que se realiza una ves por hora.
Si el código fuera en Visual Basic, entonces estaría de acuerdo contigo. Pero como trabajamos en delphi, me alegra decirte que mi ejemplo establece el timer para cuando sea necesario (un solo timer y de golpe), y se ejecutará exactamente a la hora en punto.

Si windows está "agobiado" puede demorarse unos milisegundos hasta que se desahogue un poco, pero en cuanto pueda, lanzará el código del timer.

Valera te sugiero, que estudies todo el código propuesto, es como se aprende, ya que la función Now, que he usado varias veces en mi ejemplo, te devuelve la fecha y hora del sistema, y de hecho, es mejor siempre trabajar con formato de fecha y hora que con horas solamente.

Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
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


La franja horaria es GMT +2. Ahora son las 11:15:22.


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