>백엔드 개발 >C++ >.NET에서 중지된 프로세스의 마지막 실행 시간을 어떻게 확인할 수 있습니까?

.NET에서 중지된 프로세스의 마지막 실행 시간을 어떻게 확인할 수 있습니까?

Barbara Streisand
Barbara Streisand원래의
2025-01-21 00:41:09511검색

How Can I Determine the Last Execution Time of a Stopped Process in .NET?

종료된 .NET 프로세스의 마지막 실행 시간 추적

.NET Process 클래스는 현재 활성화된 프로세스에 대한 통찰력을 제공합니다. 그러나 이미 종료된 프로세스의 마지막 실행 시간을 알아내려는 경우에는 부족합니다.

WMI: 솔루션

이 문제는 WMI(Windows Management Instrumentation)를 사용하여 효과적으로 해결됩니다. WMI에서는 프로세스 시작 및 중지 이벤트를 모니터링할 수 있습니다. 실제 구현은 다음과 같습니다.

<code class="language-csharp">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}");
    }
}</code>

필수: 높은 권한

프로세스 이벤트를 효과적으로 모니터링하려면 이 애플리케이션에 높은 권한이 필요합니다. 이에 따라 애플리케이션 매니페스트를 조정하세요.

사용방법

프로그램을 실행해 보세요. 프로세스 시작 및 중지를 지속적으로 모니터링하여 매번 프로세스 이름을 표시합니다. 모니터링을 종료하려면 아무 키나 누르세요.

위 내용은 .NET에서 중지된 프로세스의 마지막 실행 시간을 어떻게 확인할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.