Controlar / Vigilar Usuario que ejecutan el programa
Buenos días,
estoy haciendo un programa a ratos desde casa con delphi xe5 y access y cuando hago cambios lo subo por control remoto al servidor para evitar tener que acercarme a la oficina. Como tengo que borrar el .exe y meter el nuevo siempre necesito asegurarme que nadie lo está ejecutando. Teniendo en cuenta que el programa está en un servidor y es ahí donde accedo por control remoto. ¿Es posible saber si alguien está ejecutando el programa (y saber qué usuario es)? En caso de que sea posible, si alguien tiene el programa en ejecución ¿se podría cerrar? Gracias por vuestra ayuda Un abrazo |
Creo que si alguien lo está usando, no podrás borrarlo.
|
Puedes tener una tabla de usuarios y su última fecha y hora de conexión.
También puedes poner una campo PERMITIR_CONEXION en la tabla de usuarios y un timer.
|
Con firebird puedes consultar cuántos usuarios hay conectados a la base de datos, no sé si con access se puede.
|
Lo que se suele usar en estos casos (como primera solución sencilla) es lo que se llama una lanzadera.
Es un programa que lo único que hace es ejecutar el tuyo (MIPROG.EXE), por ejemplo a partir de un parámetro a un fichero .INI. Cuando hay una actualización grabas la nueva versión de tu programa (con un nombre distinto o un directorio distinto) y lo único que tienes que hacer es cambiar las opciones de la lanzadera. A medida que los usuairo vayan saliendo y volviendo a ejecutar la lanzadera, sin darse cuenta estarán ejecutando la nueva versión. |
lo que hago yo es renombrar el programa actual en el servidor (lo deja hacer, pero no borrar), después subo la nueva versión, eso si que no tendrán la nueva versión hasta que ejecuten el programa nuevamente.
|
Hola.
Yo lo que hago es un poco bestia pero bastante efectivo. En un timer del formulario principal chequeo la existencia de un fichero determinado en la carpeta del programa, si existe directamente cierro el programa. De esta manera cuando necesites "echar" a todo el mundo fuera solo tienes que crear ese fichero y todos los programas abiertos se cerrarán al momento, luego lo borras o lo renombras, actualizas tu prograna y a volar. Saludos |
En un srv windows se puede ver qué usuarios tienen abierto un fichero. Además, si eres administrador, puede echarles. Después podrías copiar tu nuevo ejecutable.
Si no recuerdo mal, se hace desde donde se administran los discos, los servicios, los usuarios, etc. pero no lo recuerdo bien y no tengo ningún srv a mano. Saludos |
CTRL + SHIFT + ESC > Procesos > "Mostrar procesos de todos los usuarios"
|
La franja horaria es GMT +2. Ahora son las 11:13:09. |
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