在我的 Win7 任务管理器中,有一个名为“命令行”的列可以显示,它将准确显示该进程是如何启动的以及发出的所有参数。如果我有一个Process
未启动的当前正在运行的进程的对象,我如何获取该信息?我曾希望我能做类似p.StartInfo.Arguments
的事情,但总是以空字符串的形式返回。整个StartInfo
属性似乎是空的,可能是因为我没有启动我正在查询的过程。我猜我将不得不使用 WinAPI 调用。
问问题
7706 次
1 回答
10
好吧,您可以使用 WMI,可以查询一个类来检索进程列表,并且每个对象还包含一个用于启动进程的命令行的属性
string query = "SELECT Name, CommandLine, ProcessId, Caption, ExecutablePath " +
"FROM Win32_Process";
string wmiScope = @"\\your_computer_name\root\cimv2";
ManagementObjectSearcher searcher = new ManagementObjectSearcher (wmiScope, query);
foreach (ManagementObject mo in searcher.Get ())
{
Console.WriteLine("Caption={0} CommandLine={1}",
mo["Caption"], mo["CommandLine"]);
}
于 2013-05-22T21:57:28.070 回答