Cita:
|
Empezado por bustio
Ahora, todo el trabajo que me hablas en el registro, lo de insertar llaves y demas, no se podrian hacer desde una aplicacion "Instaladora", que su finalidad seria instalar mi Register.Exe en el sist op. y a la vez evitar que el mal trabajo sobre el registro nos traigan concecuencias peores? Como podria hacer esta aplicacion "instaladora"?
|
Supongo que sí se puede. En principio sólo tienes que escribir esa entrada en el registro. El punto aquí es que tienes que hacer la instalación iniciando sesión como el usuario que va a usar la aplicación ya que HKCU es la clave para el usuario actual.
Yo comencé a hacer el instalador y por alguna razón que ahora no recuerdo nunca lo terminé. Había un problema pero no recuerdo si estaba relacionado con el registro.
Cita:
|
Empezado por bustio
Me gustaria tambien que me explicaras mas detalladamente el funcionamiento de tu aplicacion; y bueno... tal vez de la mezcla entre la tuya y la mia surja algo muy bueno!!!!
|
El funcionamiento es básicamnete el que ya describí. Hay algunos puntos a considerar pero que son más específicos:
Por ejemplo, en mi sistema había que impedir que un usuario usara dos pc al mismo tiempo.
Claro que al ingresar yo agrego una entrada en la tabla de sesiones de la base marcando la hora de entrada y al terminar de usar la pc marco la hora de salida.
En principio entonces, cuando un usuario intenta iniciar sesión, debo checar que no tenga una sesión ya activa (que el campo de hora de salida no sea null, por ejemplo).
El problema es que si por alguna causa la pc de un usuario se congela y hay que apagarla a la brava, nunca se marca la hora de salida y por ende no pude iniciar sesión en ninguna pc.
Para solventar eso lo que opté por hacer fue que la aplicación en cada pc manda una señal cada x segundos o minutos, según prefieras, actualizando con la hora actual un campo llamado ultimo_acceso.
Entonces, doy un intervalo máximo de espera. Si la diferencia entre la hora actual y la del último acceso es mayor que es intervalo, considero que la sesión ya terminó y le perimto iniciar una nueva.
Cita:
|
Empezado por bustio
El unico detalle que no he podido solucionar es el del Task Manager. No creo que inhabilitarlo sea una buena opcion por que a lo mejor alguna aplicacion se ejcuta mal, afecta todo el funcionamiento del sistema y no quedaria mas remedio que resetear el equipo.... sin contar los inconvenientes que esto trae.. como por ejemplo, un documento de word no salvado a tiempo.
|
Yo sigo sin ver el problema. Si algo falla y debes apagar el equipo pues simplemente guardas todo antes de hacerlo. Y si el equipo se quedó colgado, de cualquier forma el administrador de tareas no va a ser de gran ayuda.
Por otra parte, si buscas el taskman.exe en el explorador y das click derecho, verás que aparece la opción "Ejecutar como...' que te permite ejecutar la aplicación como otro usuario. No lo he probado pero imagino que si la intentas ejecutar como Administrador, que no tiene la restricción, lo podrás hacer.
Cita:
|
Empezado por bustio
si un estudiante le da por elvantarse de la PC y llega otro detras, pues continuara con la sesion del primero; y eso no deberia suceder. Me gustaria saber de que manera resolviste eso; pues no es logico suponer que todos haran lo que les corresponde.. aunque sea lo que se debe hacer.
|
Pues no lo resolví de ninguna manera, no soy mago. Si deben cerrar la sesión y no lo hacen ¿qué puede hacer una aplicación para impedir que el señorito se levante de la silla y se vaya?
Y si el nuevo usuario debe cerrar la sesión anterior en caso de que alguna esté abierta y no se le da la gana hacer, pues como no tengas un detector de huellas digitales o de iris, no veo la forma de impedirlo.
Por lo demás, habrá un afectado (quien no cerró la sesión) y un ganón que podrá hacer lo que se le antoje en nombre del primero.
A lo sumo podrías medir el tiempo de inactividad y cerrar automáticamente la sesión luego de un tiempo de espera.
En cuanto al diseño de las tablas, pues ya depende de las necesidades en particular. Como mínimo necesitas una tabla de usuarios y una de sesiones:
usuarios = (id, nombre, contraseña)
sesiones = (id, usuario_id, entrada, salida, ultimo_acceso
En mi caso también tengo una tabla de actividades
actividades = (id, sesion_id, texto)
donde se supone que el usuario anota las actividades realizadas durante la sesión. Muchos no ponen nada o escriben cualquier estupidez pero bueno, tampoco se supone que sea un sistema restrictivo.
// Saludos