Hola colegas...
Ahí me disculpan pero yo desde que me inicie con foxpro visual, he tenido muy mala experiencia con los Timer... En mi caso no me gusta usarlo y si hay otras formas de solucionar mejor.
1. Se puede hacer un formulario base, por tipos de procesos, en el Actívate de cada formulario poner DODEFAULT(), crear una función para llamarse en la clase base fVerifyClose en mi caso, acá llamas a tu tabla en el servidor y si un campo indica 1 pasa sin acción, si es 0 inactivo, aplica el fVerifyClose con un alerta que se va cerrar la aplicación por mantenimiento o algún motivo... Esto lo puedes poner también en Move del objeto principal.
Y si alguien se fue y dejó la app abierta, la puedes cerrar desde el servidor si usas tablas dbf y el exe si está usando carpetas compartidas.
Si es cliente servidor con mysql, sql serv. u otro, pos en la funcion Verificar Handle, no permitis conectarse hasta que tu campo en el server este activo, o sea si esta abierto el sistema no importa porque la conexion estara muerta, si al verificar el campo esta en 0. este va enviar mensaje y pasar el nHandle a 0.
El Sistema web es más centralizado, los mantenimientos... el problema es cuando hay un usuario registrando una caja chica cheque sujeto a rendición y son 150 registros y se los matas el proceso o le cerras usando timer, sabelo ya tienes un enemig@ en esa empresa, antes de aplicar cierre total por timer te aconsejo si hay este caso, te aconsejo todo registro digitado grabarlo local y al entrar a esa ventana indicarle al usuario si desea continuar un documento nuevo o recuperar el que estaba trabajando...
Saludos
DS