質問

CSIDL_PROGRAM_FILES IDの代わりにCSIDL_PROGRAM_FILESx86フォルダーIDを使用した32ビットシステムでのSHGetFolderPath API呼び出し?

理論的には、CSIDL_PROGRAM_FILESx86は64ビットシステムの C:\ program files(x86)にマップする必要がありますが、このパスが存在しない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 Filesを指します

他のヒント

これを試してください:

GetEnvironmentVariable("ProgramW6432", szBuffer, nBufferSize);

YMMV

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top