![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|
|
#1
|
||||
|
||||
|
Cita:
El TaskManager es una herramienta que proporciona el sistema para manejo de tareas, entre las cuales está el cerrar aplicaciones. Es decisión del administrador dar o no acceso a tal herramienta y por ello mismo proporciona las formas de inhibirla. Pero al margen de esto, te comento que eso de los escritorios yo lo comencé a estudiar cuando estaba programando el acceso a las computadoras en una sala de cómputo. La idea básica era la misma: Presentar un cuadro de autentificación en donde se validan los datos contra una base propia y sólo si son correctos se da el acceso al sistema. Se registra además la hora de entrada y de salida e igualmente cuando el usuario termina se cierra la sesión de Windows. Después de varias pruebas me convencí de que los objetos Desktop no eran el camino a seguir, o por lo menos, no eran realmente necesarios para el objetivo en cuestión. En el hilo http://www.clubdelphi.com/foros/showthread.php?t=25992 podrás ver una explicación un poco más detallada de lo que hice. Hasta la fecha me ha funcionado muy bien. Si te decides por ese camino y tienes más dudas con gusto te puedo echar la mano o incluso proporcionarte el código fuente para que lo examines. EDITO: La descripción comienza en el mensaje 6 y continúa en el 8. // Saludos Última edición por roman fecha: 19-10-2005 a las 17:10:20. |
|
#2
|
|||
|
|||
|
Exactamente lo que dice Roman
Wao Roman: Ya veo que las cosas que pienso hacer no son en lo absoluto nuevas para nada. Acabo de ver el hilo que me enviaste en tu respuesta y exactamente eso que tu hiciste es lo que trate de hacer yo. Segun la forma en que lo tengo hecho hasta ahora me parece una buena solucion, ya en mi intervencion anterior la explique; pero la tuya me parece mas eficiente y mas tecnica...lo que conllevaria a que tendria que volver a empezar desde el principio. Pienso dejar mi aplicacion por el momento ejecutandose para probarla y si me gustaria ver los codigos que me propusiste. Si lo deseas tambien puedo enviarte a ti o a cualquier otro que se interese en realizar alguna aplicacion parecida y no atraviese por los mismos problemas que nosotros los codigos para que los vean y para que los instalen si lo desean tambien.
Basandome en este hilo: http://www.clubdelphi.com/foros/showthread.php?t=25992 Asi, leyendo tu respuesta me surgen algunas dudas: Evidentemente, y como habras visto ya, no estoy muy relacionado con el uso de las APIs de Windows, y que por demas.... creo que ese es un eror enorme mio. 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"? 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 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. Es por eso que pense en dos soluciones: 1.- Hacer algo para que no se pueda cerrar este proceso en el Task Manager; de lo que no tengo ni idea de como hacerlo... 2.- Crear una aplicacion que pretenda simular al Task Manager, que muestre todos los procesos igual que el TM excepto mi aplicacion.. y que por supuesto, pueda cerrar a los demas procesos y mostrarse al presionar CTRL+Shift+Esc, o al presionar sobre el boton Task Manager cuando damos CTRL+Alt+Del... lo cual tampoco se como lograr que se active. Espero que alguien pueda orientarme en este aspecto......(en especial Roman, qie se va mostrando como el Dios de los principiantes en este foro!) NOTA: En especial, me gustaria ver el disenno de la base de datos que utilizas para ver que tan bien esta la mia o no.. y en especial, el tratamiento respecto a lo de las sesiones de tu sistema... pues en eso me di unos cuantos golpes... referente a que 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.
__________________
Muchas Gracias... Última edición por bustio fecha: 21-10-2005 a las 22:31:21. Razón: Mas informacion |
|
#3
|
||||
|
||||
|
Cita:
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:
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:
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:
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 |
|
#4
|
|||
|
|||
|
Todo me parece perfecto...
Hola Roman:
Y gracias nuevamente. Al fin, y con tus sugerencias he podido casiq euterminar mi aplicacion y esta ya casi lista para entrar en funcionamiento.. cosa que ocurrira mannana en la mannana. Y a pesar de todo, me gustaria hecharle un vistazo a los fuentes de la aplicacion semejante que hiciste y que me dijiste arriba que con gusto me mostrarias, pues estoy pensando en una version superior segun se comporte esta de la que te he estado hablando por mas de una semana. Muchisimas gracias otra vez a ti a este maravilloso foro....
__________________
Muchas Gracias... |
![]() |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
|