首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我不能从WPF运行截图工具?

为什么我不能从WPF运行截图工具?
EN

Stack Overflow用户
提问于 2012-08-01 01:20:09
回答 3查看 3.2K关注 0票数 8

我已经创建了一个带有许多按钮的WPF窗口,每个按钮都运行不同的程序。例如,要运行MS Word,我使用:

代码语言:javascript
复制
System.Diagnostics.Process.Start("C:\\Program Files (x86)\\Microsoft Office\\Office14\\WINWORD.EXE");

但是,当我尝试以同样的方式运行Windows7截取工具时,它并不起作用。它应该是这样的:

代码语言:javascript
复制
System.Diagnostics.Process.Start("C:\\Windows\\System32\\SnippingTool.exe");

我确信路径是正确的,但总是会出现一条消息,说明没有找到该文件。我想知道为什么会发生这种情况。

重要提示:我使用的是64位Windows 7。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-08-01 01:46:02

使用以下命令:

代码语言:javascript
复制
// if the build platform of this app is x86 use C:\windows\sysnative
if(!Environment.Is64BitProcess) 
   System.Diagnostics.Process.Start("C:\\Windows\\sysnative\\SnippingTool.exe");
else
   System.Diagnostics.Process.Start("C:\\Windows\\system32\\SnippingTool.exe");

问题出在您的构建平台(x86)和64位操作系统上文件夹C:\Windows\System32\的自动重定向中。

基本上,由于几个原因,在vista/Windows7 64位操作系统中,当32位应用程序试图访问C:\Windows\System32\时,它会自动重定向到名为C:\Windows\SysWOW64\的文件夹。因此,您无法启动snippingtool.exe,因为它不在该文件夹中。

唯一的方法是使用C:\Windows\sysnative\并绕过重定向。

票数 10
EN

Stack Overflow用户

发布于 2012-08-01 01:24:36

我的心理调试器告诉我,您正在64位版本的Windows上运行一个32位程序,因此您对%WINDIR% (C:\Windows)的调用实际上被重新路由到C:\Windows\SysWOW64

使用环境变量,而不是硬编码目录的路径,这些目录可能会根据环境和/或Windows版本而移动。

票数 3
EN

Stack Overflow用户

发布于 2012-08-01 01:24:21

您应该改用环境变量。很可能您正在64位系统上运行它,而C:\Windows\System32\正在被重定向。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11745608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档