NEWS

[C#] Theo dõi sử kiện process Start hay Stop trên Winform

[C#] Theo dõi sử kiện process Start hay Stop trên Winform
Đăng bởi: Thảo Meo - Lượt xem: 3077 21:56:36, 27/05/2022EBOOK

Xin chào các bạn, bài viết này mình sẻ hướng dẫn các bạn cách bắt sự kiện khi chạy một ứng dụng Start hay Stop trên C#, Winform.

[C#] Trigger if a Process Start or Stop in Windows

Dưới đây là giao diện demo C#:

watch_event_process

Ở hình trên khi mình mở ứng dụng nào thì, nó sẽ bắt sự kiện và trả về đường dẫn ứng dụng đang chạy ra màn hình Console.

Source code c#:

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Management;
using System.Text;
using System.Threading.Tasks;

namespace WatchProcessStart
{
    internal class Program 
    {
        static ManagementEventWatcher  processStartEvent = new ManagementEventWatcher("SELECT * FROM Win32_ProcessStartTrace");
        static ManagementEventWatcher processStopEvent = new ManagementEventWatcher("SELECT * FROM Win32_ProcessStopTrace");
        static void Main(string[] args)
        {
            processStartEvent.EventArrived += new EventArrivedEventHandler(processStartEvent_EventArrived);
            processStopEvent.EventArrived += new EventArrivedEventHandler(processStopEvent_EventArrived);
            processStartEvent.Start();
            processStopEvent.Start();

            Console.ReadLine();

        }
        static void processStartEvent_EventArrived(object sender, EventArrivedEventArgs e)
        {
            string processName = e.NewEvent.Properties["ProcessName"].Value.ToString();
            string processID = Convert.ToInt32(e.NewEvent.Properties["ProcessID"].Value).ToString();

            int pid = Convert.ToInt32(e.NewEvent.Properties["ProcessID"].Value);

            Process p = Process.GetProcessById(pid);

            string wholeFileName = p.MainModule.FileName;

            Console.WriteLine($"Process started>> Name: {wholeFileName}  | ID: {pid} ");

        
    }

        static void processStopEvent_EventArrived(object sender, EventArrivedEventArgs e)
        {
            string processName = e.NewEvent.Properties["ProcessName"].Value.ToString();
            string processID = Convert.ToInt32(e.NewEvent.Properties["ProcessID"].Value).ToString();

            int pid = Convert.ToInt32(e.NewEvent.Properties["ProcessID"].Value);

            Process p = Process.GetProcessById(pid);

            string wholeFileName = p.MainModule.FileName;

            Console.WriteLine($"Process Stop>> Name: {wholeFileName}  | ID: {pid} ");
        }
    }
}

Thanks for watching!

Tags: event process start c#event process stop c#

THÔNG TIN TÁC GIẢ

BÀI VIẾT LIÊN QUAN

[C#] Theo dõi sử kiện process Start hay Stop trên Winform
Đăng bởi: Thảo Meo - Lượt xem: 3077 21:56:36, 27/05/2022EBOOK