Dónde Almacenar escritura de datos a ser compartidos por todos los usuarios en vista de un instalador?

StackOverflow https://stackoverflow.com/questions/114194

Pregunta

Mi aplicación se instala a través de los institutos nacionales de estadística.

Quiero el instalador para instalar el programa para todos los usuarios.

Puedo hacer esto, mediante la instalación de los 'archivos de programa' directorio.

Hay un archivo de base de datos (firebird), que todas las cuentas de usuario en el sistema deben compartir.

Si me guarde este archivo de base de datos en la 'archivos de programa' directorio será de sólo lectura.

Si puedo guardarlo en el los usuarios de directorio APPDATA que cada uno tenga una copia diferente, cuando un usuario agrega los datos de los demás no la ven.

Opción 1 - En mi directorio app en 'archivos de programa' crear 'Datos' en el directorio, en mi instalador de hacer esta dir de lectura-escritura por todos, de tal manera que el usuario 'archivos de programa' la virtualización no una patada en el que todos los usuarios pueden actualizar el archivo y ver los cambios de los demás.

Otras opciones ?

¿Fue útil?

Solución

Los datos para todos los usuarios deben ser almacenados en %ALLUSERSPROFILE%, o llamar a SHGetFolderPath() con el parámetro CSIDL_COMMON_APPDATA para obtener el área de almacenamiento.

Ver http://www.deez.info/sengelha/2006/02/28/windows-vista-changes/ para obtener más detalles.

Otros consejos

En algún lugar bajo el perfil sería el lugar obvio.Creo que hay algunas reglas acerca de quién obtiene de lectura/escritura por defecto, pero el MS documentación recomienda si usted necesita algo diferente para crear un subdirectorio y establecer las Acl derecho en el instalador.

Esto es un agujero de seguridad, consulte: http://blogs.msdn.com/oldnewthing/archive/2004/11/22/267890.aspx

Específicamente me gustaría utilizar:

SetShellVarContext all
SetOutPath $APPDATA
File "MyInsecurelySharedFile.txt"

Ver el Los institutos nacionales de estadística de secuencias de comandos de Referencia para obtener más información.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top