Если запустился процесс, сообщить об этом - C#
Формулировка задачи:
Здравствуйте. Как можно реализовать такую задачу. Необходимо сообщать пользователю о том, запущен процесс или нет, в трее ( если запущен, то один статус там, допустим кружок зеленый, если не запущен, то красный). Как можно мониторить процессы в реальном времени? То есть приложение запускают в начале работы пк и работает до выключения. Делать при помощи таймера или бесконечно бегать циклом не вариант.
Решение задачи: «Если запустился процесс, сообщить об этом»
textual
Листинг программы
using System.Management; ... ManagementEventWatcher startWatch, stopWatch; void StartMonitoring() { startWatch = new ManagementEventWatcher(new WqlEventQuery("SELECT * FROM Win32_ProcessStartTrace")); startWatch.EventArrived += startWatch_EventArrived; startWatch.Start(); stopWatch = new ManagementEventWatcher(new WqlEventQuery("SELECT * FROM Win32_ProcessStopTrace")); stopWatch.EventArrived += stopWatch_EventArrived; stopWatch.Start(); } void StopMonitoring() { if (startWatch != null) { startWatch.Stop(); startWatch.EventArrived -= startWatch_EventArrived; startWatch = null; } if (stopWatch != null) { stopWatch.Stop(); stopWatch.EventArrived -= stopWatch_EventArrived; stopWatch = null; } } static void startWatch_EventArrived(object sender, EventArrivedEventArgs e) { Console.WriteLine("Process started: {0}", e.NewEvent.Properties["ProcessName"].Value); } static void stopWatch_EventArrived(object sender, EventArrivedEventArgs e) { Console.WriteLine("Process stopped: {0}", e.NewEvent.Properties["ProcessName"].Value); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д