Ver Mensaje Individual
  #3  
Antiguo 10-01-2008
Avatar de juanelo
juanelo juanelo is offline
Miembro
 
Registrado: sep 2007
Posts: 1.087
Reputación: 20
juanelo Va por buen camino
Que tal Kastor,
El problema de usar un TTimer con un servicio de windows, es que este depende de los mensajes de ventana para poder ejecutarse.
Lo que deberias de hacer es crearte un timer de "bajo nivel" y que no dependa de alguna ventana.
Checate la funcion SetTimer del api de windows:

Código Delphi [-]
UINT SetTimer(

    HWND hWnd,    // handle of window for timer messages
    UINT nIDEvent,    // timer identifier
    UINT uElapse,    // time-out value
    TIMERPROC lpTimerFunc     // address of timer procedure
   );

En donde en tu caso primer parametro va NULL y el segundo a Cero (0).

Con esto creas el timer y almancenas el valor que te devuelve la funcion para posteriormente poder "matar" al timer identificado con este valor

Código Delphi [-]
The KillTimer function destroys the specified timer. 
BOOL KillTimer(

    HWND hWnd,    // handle of window that installed timer
    UINT uIDEvent     // timer identifier
   );

Ahora lo que te queda es crearte una funcion que se llamara cada vez que se de el tiempo en el timer:

Código Delphi [-]
void CALLBACK FuncionDeTimer(HWND HWindow, UINT uMsg, UINT idEvent,
 DWORD dwTime)

Espero te sirva.
Saludos
Responder Con Cita