![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#2
|
|||
|
|||
|
⚠️ PROBLEMA PRINCIPAL: Uso de TTimer en un servicio de Windows
Los servicios NO tienen una interfaz de usuario ni un loop de mensajes visual (como Application.ProcessMessages), por lo que TTimer no funciona como esperas. El TTimer depende del mensaje WM_TIMER, que no se procesa en un servicio como sí en una app VCL normal. ✅ SOLUCIÓN 1: Usa un hilo (TThread) en lugar de TTimer Así sí puedes ejecutar tareas cada X segundos sin bloquear el servicio. 🧠 Alternativa funcional:
Y en ServiceStart:
Y no olvides terminarlo en ServiceStop si lo mantienes como miembro de la clase. ⚠️ OTRO PROBLEMA: Beep No uses Beep en servicios. No está permitido en contexto de servicio (no hay usuario con escritorio para oírlo), y puede incluso tirar errores. Quita todas las llamadas a Beep. ⚠️ OTRO DETALLE: Acceso a ruta de usuario desde un servicio Estás escribiendo el log en:
⚠️ Los servicios se ejecutan como SYSTEM por defecto, no como el usuario que tú eres. Esto significa que esa ruta probablemente no exista o no tenga permisos para escribir. ✅ Solución: Cambia la ruta del log a una más accesible, como:
Y asegúrate de que exista la carpeta y tenga permisos. Última edición por navbuoy fecha: 10-07-2025 a las 22:22:32. |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| TService | sancarlos | API de Windows | 4 | 12-11-2008 10:14:25 |
| TService y TForm | Softweb | API de Windows | 5 | 20-10-2008 17:41:01 |
| TService, IB, FB | OSKR | C++ Builder | 0 | 27-04-2005 11:51:11 |
| Imprimir desde un TService | gynch | Varios | 2 | 02-04-2004 19:35:23 |
| Imprimir desde un TService | gynch | Impresión | 0 | 24-03-2004 14:12:16 |
|