Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Aplicación con privilegios de administrador (https://www.clubdelphi.com/foros/showthread.php?t=58000)

vtorres 04-07-2008 13:46:25

Aplicación con privilegios de administrador
 
Hola: Antes de nada disculpas si este tema está ya contestado en el foro. Pero yo no lo he encontrado.

Mi problema es el siguiente: Tengo una aplicación pequeña ( hecha con Delphi 2005 ) que se ejecuta en el inicio de Windows ( XP o Vista ) y que gestiona un archivo
de configuración .ini. Si lo ejecuto en una cuenta con privilegios de administrador, no tengo ningún problema. La pega aparece cuando se ejecuta en una cuenta limitada ( no administrador ) da un error de no poder escribir en el archivo .ini.

Les agradecería me dijeran como lo puedo solucionar. Estuve viendo lo de "runas", pero me parece algo chapuza. Me imagino que escribiendo algo
en el registro de Windows se puede solucionar, o en el própio ejecutable, pero no se como hacerlo.

Gracias

jhonny 04-07-2008 21:55:53

Me imagino que el problema solo se te presenta en Windows vista, si es así, prueba a guardar el .ini en la carpeta del usuario y no en "Archivos de programas" ;).

Si al probar lo que te he dicho ves que el problema persiste, entonces puede que sea alguna directiva de seguridad del dominio, creada por el administrador de la red (creo yo).

vtorres 05-07-2008 08:29:00

Gracias Jhonny pero no es ese el problema. 1º el caso se reproduce tanto en XP como en Vista. 2º la aplicación no trabaja en red, lo hace en un solo PC.

Lo que yo necesito es algo que observo al instalar alguna aplicación comercial en la que el própio programa instalador pregunta si la aplicación la va a ajecutar solo el Administrador o todos los usuarios del PC.


Muchas gracias

pcicom 05-07-2008 08:31:58

Puedes intentar Grabar el INI en

C:\Archivos de programa\Archivos comunes\TU_PROGRAMA..

Esta carpeta es de uso comun Limitado y/o Administrador

vtorres 06-07-2008 15:08:57

Gracias por contestar cicomp, pero con eso se mantiene el problema.
Como dije en el primer hilo que puse, estoy casi seguro que el problema se solucionaría con la inclusión o modificación de alguna clave en el registro de windows pero, desgraciadamente, no se cual es. Me extraña que a nadie se le haya presentado este problema. Que una aplicación tenga que gestionar un archivo .ini en el cual se le cambia el color a unas Fonts. y poco más, y al ejecutarse esta aplicación en una cuenta que no tiene privilegios de administrador, Windows bloquea el acceso de la aplicación al archivo .ini.


Espero que alguien que sepa algo de esto me pueda ayudar.


Gracias.

Wellnic 21-08-2008 20:07:05

Cita:

Empezado por vtorres (Mensaje 298433)
Lo que yo necesito es algo que observo al instalar alguna aplicación comercial en la que el própio programa instalador pregunta si la aplicación la va a ajecutar solo el Administrador o todos los usuarios del PC.

Creo que eso se puede hacer con dos elementos: una ventana normal y corriente, que capte el usuario y contraseña, y la función CreateProcessWithLogon, que procese esos datos. Lamentablemente, esto último sólo lo pude implementar en VB, ya que mis conocimientos de programación no llegan a estas alturas :(

kuan-yiu 26-08-2008 07:44:26

Yo recuerdo un problema parecido hace muchos años y me parece que pasé de guardar lo que necesitaba en un ".ini" y simplemente lo guardé en un ".txt" y solucionado. (Era para una práctica de la facultad y no tenía ganas de romperme la cabeza.)

escafandra 09-10-2008 22:20:35

Aunque un poco tarde, respondo. Pero antes:
¿La instalación previa en el PC se hizo como administrador? y si es así, ¿El archivo .ini se suministra cin la instalación, o se crea en tiempo de ejecución?.

Si la primera pregunta es afirmativa, y ademas el .ini se suministra, ese archivo "pertenece" al administrador que lo instaló ( si éste lo escribió), por lo que un usuario normal no lo puede reescribir, no tiene permisos.

Si es este el caso, lo más sencillo es que el .ini se cree en tiempo de ejecución (con unos parámetros por defecto...), con lo que los permisos de escritura serán del usuario, a no ser que un administrador sea el primero en ejecutar el programa. Si el .ini debe ser dependiente de usuario, lo mejor es que cada usuario tenga su .ini en una carpeta propia: C:\Documents and Settings\Usuario....

Saludos.

alquimista 07-11-2008 16:59:38

A mi me ocurrió algo similar.

Efectivamente como han comentado un usuario limitado no tiene permiso para escribir en muchas carpetas, ni tampoco en muchas claves del registro de Windows (HKLM-Key Local Machine).
Lo mejor es grabar en carpetas que tienen permisos tanto para admin como limitados. Por ejemplo c:\documents And Settings\Alluser\Datos de programa\MIAPLICACION.
O bien grabar en claves del registro de Windows como HKCU.Clave de Usuario Actual.
Con respecto a las carpetas, puse un truco de como "Obtener carpetas especiales".

Otra manera que intente y no me funcionó es utilizar un procedimiento RunAs para desde un usuario limitado ejecutar la aplicación con privilegios de Administrador.

Espero que te sirva...


La franja horaria es GMT +2. Ahora son las 18:49:48.

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