如何在win64上禁用重定向

Posted

技术标签:

【中文标题】如何在win64上禁用重定向【英文标题】:How can disable redirection on win64 【发布时间】:2013-07-03 11:37:18 【问题描述】:

我想将c:\Windows\regedit.exe 复制到与regedit2.exe 名称相同的目录但是当我尝试复制它时,我收到一个错误,说“找不到regedit.exe 文件”或者有时将它复制到windows\SysWOW64 目录下。实际上我知道win64 正在重定向它但是如何禁用重定向并将 windows/regedit.exe 复制到 windows/regedit2.exe。我的示例代码是

if(File.Exists(@"c:\Windows\regedit.exe"))
try

File.Copy(@"c:\Windows\regedit.exe", @"c:\Windows\regedit2.exe", true);

catch (Exception ex)

有没有人可以帮助我

【问题讨论】:

【参考方案1】:

有一些可用的 Win32 函数可以禁用和启用重定向。

[DllImport("kernel32.dll", SetLastError = true)]
static extern bool Wow64DisableWow64FsRedirection(ref IntPtr ptr);

[DllImport("kernel32.dll", SetLastError = true)]
static extern bool Wow64RevertWow64FsRedirection(IntPtr ptr);

例子:

IntPtr wow64Value = IntPtr.Zero;

// Disable redirection.
Wow64DisableWow64FsRedirection(ref wow64Value);

// Do whatever you need
// .....................

// Re-enable redirection.
Wow64RevertWow64FsRedirection(wow64Value);

【讨论】:

谢谢,我想在纯 .net 中没有办法做到这一点?

以上是关于如何在win64上禁用重定向的主要内容,如果未能解决你的问题,请参考以下文章

Delphi 禁用x64位系统文件重定向功能

在表单登录 Glassfish 上禁用重定向到上次访问的资源

禁用 WKWebView 以打开链接以重定向到我的 iPhone 上安装的应用程序

如何在 CURL 重定向上传递 cookie?

如何禁用 nuxt 默认错误重定向

Windows学习解决python无法访问win64系统drivers目录重定向文件问题