32位OpenFileDialog - > 64位System32?
在32位程序中,如何获取打开/保存文件对话框以显示64位系统的System32文件夹中的文件?
(
Wow64DisableWow64FsRedirection
不起作用,因为由于某种原因它不适用于对话框,我猜是因为它在不同的线程上。当然使用SysNative
不起作用,因为用户不知道发生了什么在内部;他只是想看到计算机上的“实际”文件。)
这是提出问题的另一种方式:
是否有任何32位程序从打开文件对话框中浏览64位System32
文件夹?
没有找到相关结果
已邀请:
3 个回复
程琶
撕吠
让您的二进制文件(EXE或DLL)直接与此DLL链接。然后在调用GetOpenFileName之前,调用StartDisableRedirect(以便后续线程不被重定向)和DisableRedirect(对于当前线程)。 我特意制作了一个“开始”函数,以便在钩子实际开始处理线程之前加载所有DLL(包括系统DLL)。我不想假设在我的DLL之前加载实现Wow64Disable的DLL。从DllMain调用代码时,您必须非常小心(阅读:不应该)。
赐黄
或其他任何内容。您可以在stdout上侦听文件名或使用其他一些IPC机制。打开返回的文件时,请记得使用
!让UI在另一个进程中运行似乎很笨拙,但它对用户来说是无缝的,许多Web浏览器在不同的进程中运行不同的选项卡或插件。 如果您使用Vista或更高版本,可以使用
界面,这样您就可以为
目录添加“位置”。这样,您的用户仍然可以在需要时访问这些文件。甚至可能有一种简单的方法来重定向事物,以便当有人点击
目录时,你可以将它们改为
。