32 位 OpenFileDialog --> 64 位 System32?

Meh*_*dad 2 .net c# winapi wow64 openfiledialog

在 32 位程序中,如何让打开/保存文件对话框显示 64 位系统的 System32 文件夹中的文件?

(Wow64DisableWow64FsRedirection不起作用,因为由于某种原因它不适用于对话框,我猜测是因为它位于不同的线程上。当然 usingSysNative不起作用,因为用户不知道内部发生了什么;他只是想查看计算机上的“实际”文件。)


这是提出问题的另一种方式:

是否System3232 位程序从打开的文件对话框浏览 64 位文件夹?

Dav*_*nan 5

我相信这是根本不可能的。

即使您可以获得显示文件的对话框,当它们返回到您的 32 位进程时它们的名称是什么?Sysnative 有点破解,无论如何在 XP 64 上都不可用。这只是重载 system32 名称的结果。

另一个思想实验。如果可能的话,您需要执行枚举的线程来禁用重定向。由于该线程不受您的控制,因此必须有一个已发布的选项来禁用它。没有。允许您禁用来自外部的重定向是没有好处的,因为当 32 位进程尝试加载 shell 扩展时,这会导致 DLL 加载失败 - 如果您要加载 DLL,则无法禁用重定向,因为您会得到错误的

我想如果你想绕过这个限制,你应该编写一个 64 位程序。