2012-06-25 10 views
10

La mia app deve installare alcuni file che possono essere modificati dall'applicazione in fase di esecuzione. Install shield fornisce un alias [CommonAppDataFolder] che verrà risolto in c: \ programData su Vista e Windows 7 e funzionerà anche su Windows XP. Esiste una funzione win32 che restituirà un percorso simile?Funzione Win32 per ottenere il percorso C: ProgramData

Forse ho bisogno di chiamare diverse funzioni a seconda del sistema operativo?

risposta

18

SHGetFolderPath/SHGetSpecialFolderPath ottenere quello, con argomento CSIDL_COMMON_APPDATA.

Vedere lo snippet di codice qui (nella parte inferiore): 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 \ Dati applicazioni
  • Windows Vista: C: \ ProgramData
  • Windows 7: C: \ ProgramData

Vedi anche: CSIDL.

+0

Sembra che CSIDL_COMMON_APPDATA si risolva in: C: \ Documents and Settings \ All Users \ Application Data non esiste un modo per ottenere un percorso per c: \ ProgramData? Non è un buon posto per conservare questo tipo di file? – Mike2012

+1

@ Mike2012, entrambi i percorsi hanno lo stesso scopo: uno su XP e sotto e l'altro su Vista e sopra. Quindi il risultato che ottieni dipende dal sistema operativo che utilizzi. – eran

+1

Vedere sopra - percorsi di esempio aggiunti la costante si risolve in diverse versioni di Windows –

Problemi correlati