Pregunta

¿Qué sucede si uso SHGetFolderPath llamada api en un sistema de 32 bits con la identificación de la carpeta CSIDL_PROGRAM_FILESx86 en lugar de la identificación CSIDL_PROGRAM_FILES?

Teóricamente, CSIDL_PROGRAM_FILESx86 debe asignarse a C: \ program files (x86) en un sistema de 64 bits, pero ¿a qué se asigna en un sistema de 32 bits donde no existe esta ruta?

¿Fue útil?

Solución

Los diferentes escenarios se describen en este artículo en MSDN .

Desplácese hacia abajo hasta las observaciones, " 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

Resumen: apuntará a% SystemDrive% \ Archivos de programa

Otros consejos

Prueba esto:

GetEnvironmentVariable("ProgramW6432", szBuffer, nBufferSize);

YMMV

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