Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > API de Windows
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-10-2005
desve desve is offline
Miembro
 
Registrado: mar 2005
Ubicación: Chihuahua, Mexico
Posts: 32
Poder: 0
desve Va por buen camino
Restringir programas de windows

Hola, quisiera saber si hay alguna forma desde delphi que mientras una aplicacion esté corriendo no permita usar otros programas o dicho de otra manera...

Que permita correr solo una lista de programas predefinida, esto con el fin de tener un sistema que controle un laboratorio de computo y que deban de loggearse cuando vayan a utilizar la maquina, pero como se debe de cotejar si no existen castigos en otro lugar deberia de utilizar conexiones y la aplicacion de la que hablo.


Por lo que no se si haya alguna manera de restringir los demas programas, o bien
autorizarlos, con algun componente, alguna libreria.


Gracias, agradezco de antemano su ayuda.
Responder Con Cita
  #2  
Antiguo 10-10-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Para esto yo lo que haría es reemplazar el shell de windows (explorer.exe) por una aplicación propia que funcione como lanzadera y sólo presente los programas que se deseen. Además poner alguna política para evitar que puedan ejecutar una aplicación con el administrador de tareas.

// Saludos
Responder Con Cita
  #3  
Antiguo 10-10-2005
desve desve is offline
Miembro
 
Registrado: mar 2005
Ubicación: Chihuahua, Mexico
Posts: 32
Poder: 0
desve Va por buen camino
Ok

Bueno podria ser, pero al parecer no me supe explicar, ya que necesito que esta aplicacion corra como residente para que cuando se loggeen les de acceso a todos los programas, y al cerrar la sesion en el programa les vuelva a bloquear la computadora, para esperar que de nuevo introduzcan otro usuario y otro password para poder iniciar sesion y asi tener acceso a los recursos del sistema.
Responder Con Cita
  #4  
Antiguo 10-10-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por desve
para que cuando se loggeen les de acceso a todos los programas, y al cerrar la sesion en el programa les vuelva a bloquear la computadora, para esperar que de nuevo introduzcan otro usuario y otro password para poder iniciar sesion y asi tener acceso a los recursos del sistema.
¿Te das cuenta de que lo que describes es lo mismo que de por sí hace Windows?

1. Presenta un cuadro de login para iniciar sesión
2. El usuario pone sus datos
3. Si los datos son válidos el sistema se inicia y tiene acceso a las aplicaciones
4. El usuario termina sesión
5. Se presenta nuevamente el cuadro de login

Así que, ¿qué es exactamente lo que quieres?

// Saludos
Responder Con Cita
  #5  
Antiguo 10-10-2005
desve desve is offline
Miembro
 
Registrado: mar 2005
Ubicación: Chihuahua, Mexico
Posts: 32
Poder: 0
desve Va por buen camino
sip

Exacto es practicamente lo que utiliza el login de windows, pero existen unas cuantas cosas que necesito hacer con esa informacion.

1. Se debe de cotejar en una BD remota que el usuario exista, no tenga castigos o adeudos.

2. se insertara en una BD el numero de maquina, la hora y el usuario que la utiliza, asi como cuando termina. (EL PUNTO IMPORTANTE ES ESTE, LLEVAR UN CONTROL).

3. Resultaria dificil utilizar el cuadro de login de windows, ya que las computadoras de laboratorio de una universidad despues de un tiempo de uso se vuelven lentas, y existiria demasiado tiempo muerto en apagar y prender.

Como se necesita acceder a una BD externa necesitaria tener corriendo aplicaciones de conexiones cliente a BD, y eso no creo que sea posible correr si no se ha iniciado la sesion.

Ahora que estuve platicando con algunas personas, y me comentaban la posibilidad de tener una aplicacion que corra maximizada y desactive el boton de inicio de windows, el alt+tab, y el ejecutar.

Posiblemente esta sea una opcion mas razonable de implementar, o no se que pienses...

Última edición por desve fecha: 10-10-2005 a las 21:29:16.
Responder Con Cita
  #6  
Antiguo 10-10-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Por lo que mencionas en el punto 3 no sé si lo que te voy a decir te funcione. Yo hago algo parecido para una sala de cómputo en donde debe registrarse la hora de entrada y de salida así como otros datos pertinentes para cada usuario.

Básicamente lo que hago es:

1. Configurar la pc para iniciar automáticamente con un usuario determinado, digamos, 'estudiante'. Este es un usuario de Windows, no de mi sistema.

2. Para este usuario reemplazo el shell de Windows. Para ello, si no mla recuerdo, agregas en el registro de Windows, en la clave

HKCU\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon

la entrada Shell que apunte a tu propia aplicación.

Nota que es Windows NT y no Windows aunque el S.O sea Windows XP o 2000
También nota que esta entrada existe en

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\WinLogon

pero esto cambiaría el shell para cualquier usuario y te sería más difícil acceder para otros menesteres. Así, yo puedo entrar como administrador y el shell sigue siendo el explorer

3. La aplicación que sustituye al shell, digamos, controlador.exe, lo primero que hace es presentar su propio cuadro de login y ella misma hace la autenticación ya en el sistema de control y no en Windows. De hecho, controlador.exe correrá después del login de Windows, de ahí que configure la máquina para que por defecto entre como usuario 'estudiante'

Como no hay shell, el usuario no puede hacer nada aparte de interactuar con el cuadro de login (hay que deshabilitar la ejecución de programas del administrador de tareas, lo cual puedes hacer con gpedit.msc o directamente en el registro de Windows)

De ese cuadro de login sólo hay dos formas de salir:

a) Oprimiendo un botón que manda cerrar la sesión de Windows, con lo que se sigue sin tener acceso a la pc

b) Proporcionando los datos correctos.

4. controlador.exe verifica contra la base de datos la validez de los datos. Si éstos son correctos entonces, y sólo entonces, manda llamar a explorer.exe

5. En mi caso particular, controlador.exe continúa presentando ya la ventna principal que no es si no una barra similar a la barra de tareas de Windows, que coloco en la parte superior de la pantalla y donde muestro el nombre del usuario y tiene botones o menús para las distintas opciones particulares del sistema. Entre éstas, la de terminar la sesión, con lo cual grabo la hora de salida y demás menesteres apropiados.

// Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro


La franja horaria es GMT +2. Ahora son las 14:03:47.


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
Copyright 1996-2007 Club Delphi