我是一個C#新手,所以忍受着我。我試圖從一個C#應用程序中從PsTools調用「pslist」,但我一直在收到「系統找不到指定的文件」。我以爲我讀過谷歌的某個地方,該exe文件應該在c:\ windows \ system32中,所以我試過了,仍然沒有。即使嘗試完整路徑到C:\ WINDOWS \ SYSTEM32 \ PsList.exe不起作用。我可以打開其他東西,如記事本或註冊表。有任何想法嗎?c#調用進程「無法找到指定的文件」
C:\WINDOWS\system32>dir C:\WINDOWS\SYSTEM32\PsList.exe Volume in drive C has no label. Volume Serial Number is ECC0-70AA Directory of C:\WINDOWS\SYSTEM32 04/27/2010 11:04 AM 231,288 PsList.exe 1 File(s) 231,288 bytes 0 Dir(s) 8,425,492,480 bytes free
try
{
// Start the child process.
Process p = new Process();
// Redirect the output stream of the child process.
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardOutput = true;
//This works
//p.StartInfo.FileName = @"C:\WINDOWS\regedit.EXE";
//This doesn't
p.StartInfo.FileName = @"C:\WINDOWS\system32\PsList.exe";
p.Start();
// Do not wait for the child process to exit before
// reading to the end of its redirected stream.
p.WaitForExit();
// Read the output stream first and then wait.
s1 = p.StandardOutput.ReadToEnd();
p.WaitForExit();
}
catch (Exception ex)
{
Console.WriteLine("Exception Occurred :{0},{1}",
ex.Message, ex.StackTrace.ToString());
Console.ReadLine();
}
您是否在管理員帳戶下運行了Visual Studio?這可能是用戶權限發生的事情。您也可以在Windows上禁用UAC以進行測試。 – 2010-05-25 16:34:37
@Junior:UAC不能導致FileNotFound。 – SLaks 2010-05-25 16:39:46
您是否正在運行64位Windows? – SLaks 2010-05-25 16:40:22