我正在通过Process.Start
启动路径C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools\IIS Manager.lnk
,但它以失败为The system cannot find the file specified
。Process.Start(“IIS Manager.lnk”)失败,并显示“系统找不到指定的文件”
该链接显示在dir
,所以它存在。
它可以是权限?
注:
- 的路径是通过遍历
Start Menu
目录自动发现。 - 我可以通过资源管理器和命令行启动它。
澄清:
代码如下:
公共无效执行(){的Process.Start(_shortcut.FullName);}
_shortcut是类型的FileInfo
- _shortcut.Exists为true,所以文件可以被找到
- 用显式路径替换_shortcut.FullName @“C:\ ProgramData \ Microsoft \ Windows \ Start Menu \ Programs \ Administrative Tools \ IIS Manager.lnk”具有相同的效果。
- 这是一个使用Caliburn和MEF的WPF应用程序。
- 以管理员身份运行具有相同的效果。
在这里,这从另一方面似乎工作:
[Fact]
public void TestIisManager()
{
var path = new FileInfo(@"C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Administrative Tools\IIS Manager.lnk");
Process.Start(path.FullName);
}
它似乎是基于一个有点“环境”。
二澄清:
- 似乎在Windows 7 x86的而不是在Windows 7 64位系统的工作。
它为我,所以我认为它与你的环境有问题。你有没有使用'Process.Start()'的更多选项?你在使用完整路径吗?你是否以另一个用户的身份运行你的应用 – 2010-11-16 11:12:43
这适用于我。让我们看看你调用'Process.Start()'的代码部分。 – 2010-11-16 11:14:33
您可以使用Sysinternals的进程监视器找出您的进程实际上正在查找该文件的位置。 – 2010-11-16 13:25:46