2012-06-25 17 views
10

Mi aplicación necesita instalar algunos archivos que la aplicación puede editar en tiempo de ejecución. Install shield proporciona un alias [CommonAppDataFolder] que se resolverá en c: \ programData en Vista y Windows 7 y también funcionará en Windows XP. ¿Hay una función win32 que devolverá una ruta similar?Función de Win32 para obtener la ruta a C: ProgramData

Tal vez necesito llamar a diferentes funciones dependiendo del sistema operativo?

Respuesta

18

SHGetFolderPath/SHGetSpecialFolderPath le consigo eso, con CSIDL_COMMON_APPDATA argumento.

Vea el fragmento de código aquí (en la parte inferior): How to write a Windows XP Application that stores user and application data in the correct location by using Visual C++.

  • Windows XP: C: \ Documents and Settings \ All Users \ Datos de
  • Windows Vista: C: \ Datos de programa
  • Windows 7: C: \ Datos de programa

Ver también: CSIDL.

+0

Parece que CSIDL_COMMON_APPDATA se resolverá en: C: \ Documents and Settings \ All Users \ Application Data ¿No hay forma de obtener una ruta a c: \ ProgramData? ¿No es este un buen lugar para almacenar este tipo de archivos? – Mike2012

+1

@ Mike2012, ambas rutas tienen el mismo objetivo: una en XP y en otra, y otra en Vista y superior. Entonces, el resultado que obtenga dependerá del sistema operativo que use. – eran

+1

Ver más arriba: vías de ejemplo de muestra a las que la constante se resuelve en diferentes versiones de Windows –

Cuestiones relacionadas