Win32位程序(64位系统)文件对话框的文件重定向问题

目录

附注

问题背景

实验测试

解决方案

 

方案对比

参考文档


附注

1、解释下问题含义,指在一个64Windows系统上面(譬如Win7x64Win10x64),如果一个32位的程序调用系统API打开文件对话框(譬如打开文件,保存文件)或者打开文件夹对话框,在指向系统盘下的Windows\System32目录时,会发现实际指向的是Windows\SysWOW64目录问题。

2、关于64位系统文件重定向问题,网上已经有很多文章进行了介绍,这里不再赘述(参考[1])。

3、测试验证环境:Windows10 x64 1909专业版。

4、打开/保存文件和打开文件夹,主要涉及APIGetOpenFileNameSHBrowseForFolder/SHGetPathFromIDList等(备注:打开文件夹会略微繁琐一点)。

 

问题背景

最近有客户反馈,使用我们提供的安全软件,在一些特殊场景(譬如信任文件),无法找到C:\Windows\System32下面一个指定的文件的文件(客户是想加白这个目录下面的一个文件)。收到反馈后,我们试验了下,发现真的有问题,不过初步判断应该就是x64系统上面的文件重定向问题(无法在文件对话框看到真正的c:\windows\system32下的子文件夹或者文件的原因是,被重定向到了c:\windows\syswow64下面,看到的都是这个目录下的文件和文件夹)。然而真正去解决的时候发现,bug比想象中难修复。

先准备这样一个环境:分别通过系统explorer手动建下面4个文件夹(也可以再在里面放一些具有标识作用的特殊文件):

C:\Windows\System32\00 我是真正的System32的子目录

C:\Windows\System32\01 大家都有的文件夹

C:\Windows\SysWOW64\00 我是SysWOWO64的子目录

C:\Windows\SysWOW64\01 大家都有的文件夹

(备注:标黄的部分是文件夹,如下图所示)

 

 

实验测试

1、用我们的安全软件,打开测试发现,定位到c:\Windows\System32目录发现展示果然实际上SysWOW64,此时是看不到真正的c:\Windows\System32下面的文件的。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值