.NET 프로세스
클래스는 현재 활성화 된 프로세스에 대한 통찰력을 제공합니다. 그러나 이미 종료 된 프로세스의 마지막 실행 시간을 결정하려고 할 때는 부족합니다.
이 과제는 WMI (Windows Management Instrumentation)를 사용하여 효과적으로 해결됩니다. WMI를 사용하면 모니터링 프로세스 시작 및 중지 이벤트가 가능합니다. 실질적인 구현은 다음과 같습니다.
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}");
}
}
프로세스 이벤트를 효과적으로 모니터링하려면이 응용 프로그램에는 높은 권한이 필요합니다. 그에 따라 응용 프로그램을 조정합니다.
프로그램을 실행합니다. 프로세스 시작 및 중지를 지속적으로 모니터링하여 매번 프로세스 이름을 표시합니다. 모든 키를 눌러 모니터링을 종료하십시오.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3