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 02-02-2008
Avatar de Lord Delfos
Lord Delfos Lord Delfos is offline
Miembro
 
Registrado: ene 2008
Ubicación: Tandil, Argentina
Posts: 558
Poder: 17
Lord Delfos Va por buen camino
Registrar aplicación para recibir mensaje de reloj

Hola, gente.

¿Sabe alguien si se puede registar un programa para que Windows envíe un mensaje cuando ocurran eventos con el tiempo?

Estoy haciendo un programita que queda corriendo en la SysTray. Cada 10 minutos tiene que revisar algunas cosas.

Ahora bien. Yo estoy seguro que existe una función de la API que me permite registrar el programa para que Windows le envíe un mensaje sobre eventos del reloj...

Estoy seguro que la he usado en alguna oportunidad. Pero hace días que vengo buscando y nada. O mi cerebro tiene un puntero a nil o realmente esto existe pero no lo puedo encontrar.

Ahora estoy usando un TTimer para contar 10 minutos... pero no me gusta mucho la idea, la verdad.

Si alguno sabe, se lo agradecería enormemente.

Saludongos y ¡gracias!
Responder Con Cita
  #2  
Antiguo 02-02-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Un TTimer encapsula las llamadas a la api de Windows, por tanto, ambos serán igual de precisos.

Saludos.
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 03-02-2008
Avatar de aeff
aeff aeff is offline
Miembro
 
Registrado: oct 2006
Ubicación: Cuba, Guantánamo
Posts: 348
Poder: 18
aeff Va camino a la fama
y si no te gusta la idea de usar un Timer entonces usa la API: *SetTimer*, mira un ejemplo de como yo la usaria:

Código Delphi [-]
  procedure TimerFunc(phWnd, pMsg, pidEvent, pTime: Cardinal); stdcall;
  begin
    ShowMessage('Diablos! Esto se ha ejecutado en diez minutos.');
    KillTimer(phWnd, pidEvent);     {termino, para que no se ejecute mas}
  end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  SetTimer(Handle, 1, 10 * 1000 , @TimerFunc);      {Aqui, 10 * 1000 significa que son 10 minutos ¿ok? }

end;

que crees?!
Responder Con Cita
  #4  
Antiguo 03-02-2008
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por aeff
{Aqui, 10 * 1000 significa que son 10 minutos ¿ok? }
Serán segundos.
__________________
David Esperalta
www.decsoftutils.com
Responder Con Cita
  #5  
Antiguo 03-02-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Mira la implemntación del TTimer ¿qué api usa?

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #6  
Antiguo 03-02-2008
Avatar de Lord Delfos
Lord Delfos Lord Delfos is offline
Miembro
 
Registrado: ene 2008
Ubicación: Tandil, Argentina
Posts: 558
Poder: 17
Lord Delfos Va por buen camino
¡Gracias gente!

Es verdad lo que decís, Lepe. Es bastante irónico que el TTimer haga justamente lo que yo hubiera jurado que NO hacía y que quería hacer...

... Al final existía la función... Yo no estoy loco, qué alivio...

Les agradezco la ayuda aunque, por lo que se ve, es lo mismo un TTimer que una llamada a la API...

Gracias de nuevo.
Responder Con Cita
  #7  
Antiguo 03-02-2008
alquimista alquimista is offline
Miembro
 
Registrado: ene 2008
Posts: 203
Poder: 17
alquimista Va por buen camino
Puedes usar un componente de JEDI

En la VCL de Proyecto JEDi (Componentes delphi gratuitos) hay un componente que te puede venir al pelo.

Se llama JvThreadTimer Una tarea con temporizador. Utilizas la propieda Interval con el tiempo por ejemplo 10 segundos Interval:=10000;

Y luego utilizas el evento JvThreadTimer1.Ontimer para poner tu código.
Muy fácil.
Espero que sea eso lo que buscas.
Responder Con Cita
  #8  
Antiguo 03-02-2008
Avatar de Lord Delfos
Lord Delfos Lord Delfos is offline
Miembro
 
Registrado: ene 2008
Ubicación: Tandil, Argentina
Posts: 558
Poder: 17
Lord Delfos Va por buen camino
Gracias, alquimista. Lo voy a probar... Lo que pasa es que sigue siendo un timer y no me gusta mucho porque... bueno, porque soy un quejón

Igualmente le voy a hacer un vistazo. Gracias.
Responder Con Cita
  #9  
Antiguo 04-02-2008
Avatar de aeff
aeff aeff is offline
Miembro
 
Registrado: oct 2006
Ubicación: Cuba, Guantánamo
Posts: 348
Poder: 18
aeff Va camino a la fama
gracias dec, por la rectificación, es verdad que son segundos,

saludos
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
quitar icono un lado del reloj, sin desactivar aplicacion ejecutandose sakuragi Windows 7 16-01-2008 17:27:49
Minimizar mi aplicacion al lado del reloj lfb C++ Builder 4 21-12-2007 01:19:39
Registrar nuestra aplicación en system (?) wofox API de Windows 5 08-12-2007 21:16:12
Recibir parámetros desde php con una aplicación c++Builder Panchisco C++ Builder 0 04-06-2005 22:32:35
App emita Sonido al recibir mensaje netsend Gelmin Varios 1 19-07-2004 13:50:06


La franja horaria es GMT +2. Ahora son las 05:43:24.


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