首页 新闻 会员 周边

C:\Windows\sysnative\ 这个目录是作什么用的?

0
悬赏园豆:10 [已解决问题] 解决于 2015-01-22 15:55

如何将%windir%\system32\SnippingTool.exe 转换成对的目录 ?

网上只找到这段代码:

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

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

空明流光的主页 空明流光 | 初学一级 | 园豆:106
提问于:2015-01-22 09:42
< >
分享
最佳答案
0

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

收获园豆:10
Launcher | 高人七级 |园豆:45045 | 2015-01-22 10:16

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

空明流光 | 园豆:106 (初学一级) | 2015-01-22 13:00

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

空明流光 | 园豆:106 (初学一级) | 2015-01-22 13:01

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

Wow64DisableWow64FsRedirection

  • Wow64EnableWow64FsRedirection
  • Wow64RevertWow64FsRedirection

http://support.microsoft.com/kb/942589

空明流光 | 园豆:106 (初学一级) | 2015-01-22 13:02

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

Launcher | 园豆:45045 (高人七级) | 2015-01-22 14:57
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册