문제

내가 사용하면 어떻게됩니까? shgetfolderpath CSIDL_PROGRAM_FILES86 CSIDL_PROGRAM_FILES ID 대신 폴더 ID가있는 32 비트 시스템에서 API 호출?

이론적으로 CSIDL_PROGRAM_FILESX86은 맵핑해야합니다 C:\program files (x86) 64 비트 시스템에서는이 경로가 존재하지 않는 32 비트 시스템에서 무엇을 매핑합니까?

도움이 되었습니까?

해결책

다양한 시나리오가 설명되어 있습니다 MSDN에 관한이 기사.

"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

요약 : %SystemDrive % Program 파일을 가리킬 것입니다.

다른 팁

이 시도:

GetEnvironmentVariable("ProgramW6432", szBuffer, nBufferSize);

ymmv

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top