la clase .net proceso
ofrece información sobre los procesos actualmente activos. Sin embargo, se queda corto cuando se intenta determinar el último tiempo de ejecución de un proceso que ya ha terminado.
Este desafío se aborda de manera efectiva utilizando la instrumentación de administración de Windows (WMI). WMI permite eventos de inicio y detención del proceso de monitoreo. Aquí hay una implementación práctica:
using System;
using System.Management;
public class ProcessMonitor
{
public static void Main(string[] args)
{
// Watch for process starts
using (var startWatch = new ManagementEventWatcher(new WqlEventQuery("SELECT * FROM Win32_ProcessStartTrace")))
{
startWatch.EventArrived = StartWatch_EventArrived;
startWatch.Start();
// Watch for process stops
using (var stopWatch = new ManagementEventWatcher(new WqlEventQuery("SELECT * FROM Win32_ProcessStopTrace")))
{
stopWatch.EventArrived = StopWatch_EventArrived;
stopWatch.Start();
Console.WriteLine("Monitoring process activity. Press any key to exit.");
Console.ReadKey();
}
startWatch.Stop();
}
}
private static void StopWatch_EventArrived(object sender, EventArrivedEventArgs e)
{
Console.WriteLine($"Process stopped: {e.NewEvent.Properties["ProcessName"].Value}");
}
private static void StartWatch_EventArrived(object sender, EventArrivedEventArgs e)
{
Console.WriteLine($"Process started: {e.NewEvent.Properties["ProcessName"].Value}");
}
}
Para monitorear de manera efectiva los eventos de proceso, esta aplicación requiere privilegios elevados. Ajuste el manifiesto de la aplicación en consecuencia.
Ejecute el programa. Monitoreará continuamente el proceso de inicio y se detendrá, mostrando el nombre del proceso cada vez. Presione cualquier tecla para finalizar el monitoreo.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3