我正在通過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