




Вы изучили класс System.Diagnostics.Process.
Вы можете использовать WMI для запроса чего-то вроде
"SELECT * FROM Win32_Process WHERE Name = '<your process name here>'"
Тем не менее, использование процессора с WMI несколько затруднено. Вам, вероятно, лучше использовать System.Diagnostics.Process, как предлагал Ян Джейкобс.
Простой пример ...
bool processIsRunning(string process)
{
return (System.Diagnostics.Process.GetProcessesByName(process).Length != 0);
}
Упс ... забыл использование памяти и т. д.
bool processIsRunning(string process)
{
System.Diagnostics.Process[] processes =
System.Diagnostics.Process.GetProcessesByName(process);
foreach (System.Diagnostics.Process proc in processes)
{
Console.WriteLine("Current physical memory : " + proc.WorkingSet64.ToString());
Console.WriteLine("Total processor time : " + proc.TotalProcessorTime.ToString());
Console.WriteLine("Virtual memory size : " + proc.VirtualMemorySize64.ToString());
}
return (processes.Length != 0);
}
(Я оставлю вам механику получения данных из метода - сейчас 17:15, и я готов идти домой. :)
Вы можете использовать System.Diagnostics.Process Class.
Есть методы GetProcesses () и GetProcessesByName (), которые получат список всех существующих процессов в массиве.
Объект Process содержит всю информацию, необходимую для определения того, запущен ли процесс.
Если вы хотите узнать о запущенных процессах IE:
System.Diagnostics.Process[] ieProcs = Process.GetProcessesByName("IEXPLORE");
if (ieProcs.Length > 0)
{
foreach (System.Diagnostics.Process p in ieProcs)
{
String virtualMem = p.VirtualMemorySize64.ToString();
String physicalMem = p.WorkingSet64.ToString();
String cpu = p.TotalProcessorTime.ToString();
}
}
Что-то вроде этого:
foreach ( WindowsProcess in Process.GetProcesses)
{
if (WindowsProcess.ProcessName == nameOfProcess) {
Console.WriteLine(WindowsProcess.WorkingSet64.ToString);
Console.WriteLine(WindowsProcess.UserProcessorTime.ToString);
Console.WriteLine(WindowsProcess.TotalProcessorTime.ToString);
}
}
Дубликат stackoverflow.com/q/51148/562769