2011-06-15 16 views
5

Necesito escribir un archivo ini en el directorio del usuario actual en Windows 7 (C: \ Users \ CurUser). CurUser no es un administrador. Mi instalador requiere privilegios de administrador. Así que mi configuración se ve así:Inno Setup: ¿Cómo obtener el directorio de usuario actual cuando se ejecuta el instalador como administrador?

[Setup] 
PrivilegesRequired=admin 

Cuando ejecuto el instalador, solicita al administrador que inicie sesión. A partir de ese momento, todas las constantes de usuario, userappdata, etc. son C: \ Users \ AdminUser ... De modo que necesito encontrar el CurUser cuando ejecute la instalación como AdminUser.

Se agradecen los ejemplos de código. Gracias.

+0

No sé si es posible, ya que ahora ejecuta el archivo setup.exe bajo el usuario administrador, y no creo que tenga ningún conocimiento del usuario que solicitó privilegios. –

+0

¿Es posible buscar el directorio que estoy buscando con Inno? Sé que el directorio es * \ abc \ xyz \. – PM2

+0

Puede usar las rutinas 'FindFirst',' FindNext', y 'FindClose' para buscar directorios. –

Respuesta

3

Debe dividir su configuración en dos partes. La primera parte que no es administrador escribe el archivo ini en el directorio de usuario actual y llama a la segunda parte de configuración que requiere privilegios de administrador.

2

Todos los archivos/configuraciones específicos del usuario que la aplicación requiere deben escribirse en la aplicación si se descubre que no existen. Si debe provenir de la configuración, puede escribirla en una ubicación global como "predeterminada" para que la pueda copiar o usar.

Esto también significa que su aplicación funcionará para TODOS los usuarios en el sistema en lugar de solo para el usuario que ejecutó la instalación.

0

En mi caso, acabo de cambiar a {commonappdata} en lugar de {appdata}, ya que mis datos eran los mismos para todos los usuarios.

Cuestiones relacionadas