. Тем не менее, это не достигает, когда пытается определить последнее время выполнения процесса, который уже закончился.
wmi: решение
с использованием системы; Использование System.Management; Public Class Processmonitor { Public Static Void Main (String [] args) { // Смотреть для начала процесса Использование (var startwatch = new ManagementEventWatcher (New WQLeventQuery («SELECT * FROM WIN32_PROCESSTARTTRACE"))))))) { startwatch.eventarived = startwatch_eventarived; startwatch.start (); // следить за остановками процесса Использование (var stopwatch = new ManagementEventWatcher (new wqleventQuery («Выбрать * из win32_processstoptrace")))))))) { Spectwatch.eventarived = spectwatch_eventarived; Spectwatch.start (); Console.WriteLine («Процесс мониторинга. Нажмите любую клавишу для выхода»); Console.readkey (); } startwatch.stop (); } } Private Static void spectwatch_eventarived (отправитель объекта, EventariveVentargs e) { Console.writeline ($ "Процесс остановлен: {e.newevent.properties [" processname "]. Value}"); } private static void startwatch_eventarived (отправитель объектов, EventariveVentargs e) { Console.WriteLine ($ "Зачался процесс: {e.newevent.properties [" processName "]. Value}"); } }
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