2008-10-09 30 views

Respuesta

7

¿Has mirado en la Clase System.Diagnostics.Process.

1

Usted podría utilizar WMI para consultar algo en la línea de uso

"SELECT * FROM Win32_Process WHERE Name = '<your process name here>'" 

Especialmente procesador es un poco complicado con WMI, sin embargo. Probablemente esté mejor con System.Diagnostics.Process, como se sugirió Ian Jacobs.

27

ejemplo simple ...

bool processIsRunning(string process) 
{ 
    return (System.Diagnostics.Process.GetProcessesByName(process).Length != 0); 
} 

Vaya ... se olvidó de Uso de memoria, etc ...

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); 
} 

(Voy a dejar la mecánica de obtener los datos de la método para usted - es 17:15 aquí, y estoy listo para ir a casa :)

3

puede utilizar System.Diagnostics.Process clase.. Hay un método GetProcesses() y un método GetProcessesByName() que obtendrá una lista de todos los procesos existentes en una matriz. El objeto Proceso tiene toda la información que necesita detectar si se está ejecutando un proceso.

3

si se quería saber acerca de los procesos que se están ejecutando 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();      
    } 
} 
0

algo como esto:

foreach (WindowsProcess in Process.GetProcesses) { 

     if (WindowsProcess.ProcessName == nameOfProcess) { 
      Console.WriteLine(WindowsProcess.WorkingSet64.ToString); 
      Console.WriteLine(WindowsProcess.UserProcessorTime.ToString); 
      Console.WriteLine(WindowsProcess.TotalProcessorTime.ToString); 
     } 
    } 
Cuestiones relacionadas