joe*_*joe 4 windows winapi special-folders 32bit-64bit known-folders
在 32 位应用程序中,我必须将文件复制到 64 位系统文件夹
(C:\Windows\System32\
而不是C:\Windows\SysWOW64\
)
为此,我尝试使用SHGetKnownFolderPath
带有参数FOLDERID_ProgramFilesX64(GUID:6D809377-6AF0-444b-8957-A3773F02200E)的 WinAPI 函数获取文件夹。
但不幸的是,这是不允许的(如备注部分所述)并且函数结果正确是“找不到文件”。
有没有办法做到这一点?
您请求的是PROGRAM FILES 文件夹,而不是SYSTEM文件夹。看看FOLDERID_System
和FOLDERID_SystemX86
代替。
或者,使用FOLDERID_Windows
获取 Windows 安装文件夹,然后将特殊SysNative
别名附加到它的末尾,让文件系统重定向器根据文档为您找到实际文件夹:
32 位应用程序可以通过将%windir%\Sysnative替换为 %windir%\System32来访问本机系统目录。WOW64 将 Sysnative 识别为特殊别名,用于指示文件系统不应重定向访问。该机制灵活且易于使用,因此是绕过文件系统重定向的推荐机制。请注意,64 位应用程序不能使用 Sysnative 别名,因为它是一个虚拟目录而不是真实目录。
归档时间: |
|
查看次数: |
2310 次 |
最近记录: |