【问题标题】:How can disable redirection on win64如何在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){}

有没有人可以帮助我

【问题讨论】:

    标签: c# redirect win64


    【解决方案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 中没有办法做到这一点?
    猜你喜欢
    • 2019-08-30
    • 2015-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-12
    • 2021-04-16
    • 2013-02-26
    • 1970-01-01
    相关资源
    最近更新 更多