Question

Que se passe-t-il si j'utilise SHGetFolderPath appel de l'API dans un système 32 bits avec l'ID de dossier CSIDL_PROGRAM_FILESx86 à la place de l'ID de CSIDL_PROGRAM_FILES?

Théoriquement, CSIDL_PROGRAM_FILESx86 devrait correspondre à fichiers de programme C: \ (x86) dans un système 64 bits, mais à quoi correspond-il dans un système 32 bits où ce chemin n'existe pas?

Était-ce utile?

La solution

Les différents scénarios sont décrits dans cet article sur MSDN .

Faites défiler les remarques vers le bas, " FOLDERID_ProgramFiles "

OS    Application KNOWNFOLDERID            Default Path                   CSIDL Equivalent  
32 bit    32 bit  FOLDERID_ProgramFiles    %SystemDrive%\Program Files    CSIDL_PROGRAM_FILES  
32 bit    32 bit  FOLDERID_ProgramFilesX86 %SystemDrive%\Program Files    CSIDL_PROGRAM_FILESX86  
32 bit    32 bit  FOLDERID_ProgramFilesX64 (undefined)    Not applicable  Not applicable

Résumé: il pointe sur% SystemDrive% \ Program Files

Autres conseils

Essayez ceci:

GetEnvironmentVariable("ProgramW6432", szBuffer, nBufferSize);

YMMV

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top