> 백엔드 개발 > C++ > .NET에서 프로세스의 실행 기록을 검색하려면 어떻게 해야 합니까?

.NET에서 프로세스의 실행 기록을 검색하려면 어떻게 해야 합니까?

Barbara Streisand
풀어 주다: 2025-01-21 00:36:15
원래의
318명이 탐색했습니다.

How Can I Retrieve the Execution History of Processes in .NET?

.NET으로 프로세스 실행 내역 모니터링

특정 프로세스가 시스템에서 마지막으로 실행된 시기를 추적해야 합니까? Process.GetProcessesByName에는 현재 실행 중인 프로세스가 표시되지만 기록 데이터는 제공되지 않습니다. 이 문서에서는 WMI(Windows Management Instrumentation)를 사용하여 이 문제를 해결하는 방법을 보여줍니다.

프로세스 모니터링을 위한 WMI 활용

WMI는 Win32_ProcessTrace 클래스를 통해 프로세스 시작 및 중지 이벤트에 대한 액세스를 제공합니다. 다음 코드 조각은 이러한 이벤트를 모니터링하는 방법을 보여줍니다.

<code class="language-csharp">using System;
using System.Management;

public class ProcessMonitor
{
    public static void Main(string[] args)
    {
        // Create event watchers for process start and stop events
        ManagementEventWatcher startWatcher = new ManagementEventWatcher(new WqlEventQuery("SELECT * FROM Win32_ProcessStartTrace"));
        startWatcher.EventArrived += StartWatcher_EventArrived;
        startWatcher.Start();

        ManagementEventWatcher stopWatcher = new ManagementEventWatcher(new WqlEventQuery("SELECT * FROM Win32_ProcessStopTrace"));
        stopWatcher.EventArrived += StopWatcher_EventArrived;
        stopWatcher.Start();

        // Keep the console open until a key is pressed
        Console.WriteLine("Press any key to exit...");
        Console.ReadKey();

        // Stop event watchers
        startWatcher.Stop();
        stopWatcher.Stop();
    }

    private static void StopWatcher_EventArrived(object sender, EventArrivedEventArgs e)
    {
        Console.WriteLine($"Process stopped: {e.NewEvent.Properties["ProcessName"].Value}");
    }

    private static void StartWatcher_EventArrived(object sender, EventArrivedEventArgs e)
    {
        Console.WriteLine($"Process started: {e.NewEvent.Properties["ProcessName"].Value}");
    }
}</code>
로그인 후 복사

중요 고려 사항:

이 코드가 올바르게 작동하려면 관리자 권한이 필요합니다. 이에 따라 애플리케이션 매니페스트를 조정하는 것을 잊지 마세요. 여러 프로세스를 실행하면 프로그램에서 기록한 프로세스 시작 및 중지 이벤트를 관찰할 수 있습니다.

위 내용은 .NET에서 프로세스의 실행 기록을 검색하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿