三个API:开启、关闭、关闭线程重定向

C:Windowssysnative 这个目录是作什么用的?
来源:互联网 责任编辑:小易 时间:2015/11/13 0:17:19
用户提出问题:C:Windowssysnative 这个目录是作什么用的?,具体如下:
如何将%windir%system32SnippingTool.exe 转换成对的目录 ?

网上只找到这段代码:

if(!Environment.Is64BitProcess)
System.Diagnostics.Process.Start("C:\Windows\sysnative\SnippingTool.exe");
else
System.Diagnostics.Process.Start("C:\Windows\system32\SnippingTool.exe");

但这两种路径的转换有什么规则吗? 只是替换吗?有没有系统API函数可以做这件事情 ?

通过互联网整理获得以下解决方法:

=================1楼=====================

病毒吧,我机器上没这目录。

如果在64位系统上直接使用Process.Start是无法启动C:\Windows\system32\SnippingTool.exe的,必须使用路径C:\Windows\sysnative\SnippingTool.exe

@沧海一杰: 我的系统是Win8.1 Enterprise x64,使用 vb6及c#都会报找不到文件的错误,但使用C:\Windows\sysnative\SnippingTool.exe路径就可以启动截图工具

@沧海一杰: 看微软的解释,好像要用这三个函数

Wow64DisableWow64FsRedirection
Wow64EnableWow64FsRedirection
Wow64RevertWow64FsRedirection
http://support.microsoft.com/kb/942589

@沧海一杰: 用 Environment.SystemDirectory 获取 "x:WindowsSystem32" 目录,然后根据 Is64BitProcess 和 Is64BitOperatingSystem 来决定是否要把 System32 替换为 SysNative。

http://www.zgxue.com/blogask/6/69381.html

原文地址:https://www.cnblogs.com/findumars/p/5531464.html