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 05-12-2006
miguel gomez miguel gomez is offline
Registrado
 
Registrado: dic 2006
Posts: 2
Poder: 0
miguel gomez Va por buen camino
Question Chequear privilegios de administrador

Hola amigos, a ver si alguien puede ayudarme. La verdad es que no sé si es este el foro adecuado (el de las API), si no es así, disculpadme.

El caso es que necesitaría implementar en Delphi un control como el que traen la mayoría de instaladores de manera que aparezca el mensajito ese de: "Debe conectarse como Administrador para instalar bla, bla bla".
O sea, de alguna manera averiguar si el usuario que está ejecutando el programa tiene privilegios de administrador (sería para Windows XP).

¿Alguien sabe cómo puedo hacer esto? ¿Existe alguna API para ello? ¿Sabe alguien cómo chequean eso los instaladores habituales (programas setup.exe)?

Muchas gracias por adelantado y un saludo,

-Miguel
Responder Con Cita
  #2  
Antiguo 05-12-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Le estaba dando vueltas a tu pregunta y creo que no estas enfocando bien el problema. Tal como yo lo veo no es cuestión de saber si el usuario, es administrador, usuario limitado, usuario avanzado, etc ... porque aun sabiendo a que grupo pertenece el usuario no podríamos asegurar cuales son los derechos con los que cuenta. Podrían existir toda una serie de permisos especiales para ese usuario.

Yo lo que haría es comprobar uno a uno los privilegios que necesito. Esto se podría hacer al principio de la aplicación, y así determinar si nuestra aplicación se va a poder ejecutar en esa cuenta de usuario. Por ejemplo, nuestra aplicación tiene que tener acceso a cierta carpeta, pues probamos a acceder a ella, si además necesitamos instalar un servicio probamos a conectarnos al administrador de servicios y vemos que pasa. Una vez que comprobamos que tenemos acceso a todo, ya podemos seguir con nuestra aplicación o de lo contrario advertir al usuario que necesita una cuenta de usuario con mas privilegios, incluso podríamos indicarle el privilegio que falta, y puede que el administrador (si no lo es el) pueda concederle ese privilegio sin tener que cambiar las características de su cuenta.

Solo es una idea ¿que te parece?
Responder Con Cita
  #3  
Antiguo 05-12-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Innosetup es uno de esos creadores de instaladores, y lleva la siguiente característica:
Cita:
[Setup]: PrivilegesRequired
Valid values:
none, poweruser, or admin
Default value:
none

Description:
This directive specifies the minimum user privileges required to run the installation. When set to poweruser or admin, Setup will give an error message at startup (e.g. "You must be logged in as an administrator when installing this program") if the user doesn't have at least Power User or administrative privileges, respectively. This only applies to Windows NT platforms.
Es preferible usar un instalador, en lugar de crear con delphi dicho programa.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #4  
Antiguo 05-12-2006
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
Pero lo que dice seoane aplica igual para el Inno Setup, ¿qué no? Es decir, puede ser que alguine esté en el grupo de Power User, pero se le hayan personalizado sus derechos para algunas cosas. Bueno, lo supongo porque no manejo estas cosas realmente.

// Saludos
Responder Con Cita
  #5  
Antiguo 05-12-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Un ejemplo de lo quiero decir es el siguiente. Muchas aplicaciones, sobre todo si tienen ya unos años, necesitan para instalarse, o incluso para ejecutarse, acceso al directorio "C:\Windows\Temp". Como muchos sabréis las cuentas de usuario limitadas no tienen acceso normalmente a este directorio, así que la aplicación falla. Si el administrador realmente esta interesado en que esta aplicación funcione, puede permitir el acceso, a ese directorio, a un usuario en concreto sin tener que convertirlo en administrador.

Creo que una aplicación amigable seria aquella que ante un fallo como el que describo nos mostrara algo así: "No puedo acceder al directorio C:\Windows\temp", indicándole al administrador que debe hacer para arreglar el asunto, y no mostrar algo tan abstracto como "Tienes que ser administrador", dejando al administrador en una situación difícil y obligándole a romperse la cabeza para solucionar el problema.

Es solo una opinión, de alguien que tuvo, como administrador, romperse la cabeza en su momento
Responder Con Cita
  #6  
Antiguo 06-12-2006
miguel gomez miguel gomez is offline
Registrado
 
Registrado: dic 2006
Posts: 2
Poder: 0
miguel gomez Va por buen camino
Talking

Gracias a Seoane y a los demás por sus ideas. Investigaré un poco más en esas direcciones. La verdad es que podría utilizar un instalador pero lo cierto es que quería por un lado saber cómo hacen los instaladores para darte ese mensaje de que no eres administrador y por otro implementarlo yo mismo desde Delphi.

Muchas gracias a todos.

Ya os contaré...

-Miguel
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Dar privilegios de Administrador a la Aplicación PoZi API de Windows 16 26-04-2006 20:17:52
Privilegios en interbase acrophet Conexión con bases de datos 1 09-02-2004 15:07:35
Chequear existencia de una BD vichovi Conexión con bases de datos 3 22-09-2003 23:17:48
Chequear conexión a internet Walterdf Internet 12 14-05-2003 03:36:00


La franja horaria es GMT +2. Ahora son las 16:59:42.


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