我是一名新手,所以请耐心等待。我试图从一个c#app中调用来自PsTools的“pslist”,但我一直得到“系统找不到指定的文件”。我以为我在谷歌的某个地方看到exe应该在c:\ windows \ system32中,所以我试过了,仍然没有。即使尝试c:\ windows \ system32 \ PsList.exe的完整路径也无法正常工作。我可以打开记事本或注册表等其他内容。有什么想法吗?
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();
}
答案 0 :(得分:1)
除非确实需要,否则你不应该首先这样做。
相反,请使用Process
class
您可以通过调用Process.GetProcesses
要获取单个进程的内存使用情况,请检查Process
对象的WorkingSet64
property。
要获取单个进程的CPU使用率use Performance Counters。