欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#使用WMI實(shí)現(xiàn)監(jiān)聽(tīng)進(jìn)程的啟動(dòng)和關(guān)閉

 更新時(shí)間:2024年01月30日 08:32:59   作者:rjcql  
Windows Management Instrumentation(WMI)是用于管理基于 Windows 操作系統(tǒng)的數(shù)據(jù)和操作的基礎(chǔ)結(jié)構(gòu),本文將使用WMI實(shí)現(xiàn)監(jiān)聽(tīng)進(jìn)程的啟動(dòng)和關(guān)閉,感興趣的可以了解下

寫(xiě)在前面

Windows Management Instrumentation(WMI)是用于管理基于 Windows 操作系統(tǒng)的數(shù)據(jù)和操作的基礎(chǔ)結(jié)構(gòu)。具體的API可以查看 WMI編程手冊(cè)。

WMIC 是WMI的命令行管理工具,使用 WMIC,不但可以管理本地計(jì)算機(jī),還可以管理同一Windows域內(nèi)的所有遠(yuǎn)程計(jì)算機(jī)(需要必要的權(quán)限),而被管理的遠(yuǎn)程計(jì)算機(jī)可以不預(yù)先安裝WMIC,只需要支持WMI即可。WMIC 通過(guò) WMIC.exe 實(shí)現(xiàn)了分析、解釋并執(zhí)行來(lái)自命令行的參數(shù)別名(Alias)的引擎,這個(gè)文件通常位于 "C:\Windows\System32\wbem"文件夾中(支持Windows XP和Windows2003及以后的系統(tǒng))。

命令行示例:wmic cpu get name 查看CPU信息

 在.net core中使用需要從NuGet安裝 System.Management 包,而在.net framework直接引用即可。

代碼實(shí)現(xiàn)

using System.Management;
 
public class Program
{
    public static void Main(string[] args)
    {
        //創(chuàng)建WQL事件查詢,監(jiān)視進(jìn)程開(kāi)啟
        var qCreate = new WqlEventQuery("__InstanceCreationEvent", TimeSpan.FromSeconds(1), "TargetInstance ISA 'Win32_Process'");
        //創(chuàng)建WQL事件查詢,監(jiān)視進(jìn)程關(guān)閉
        var qDelete = new WqlEventQuery("__InstanceDeletionEvent", TimeSpan.FromSeconds(1), "TargetInstance ISA 'Win32_Process'");
 
        // 指定名稱的查詢語(yǔ)句
        // "TargetInstance ISA 'Win32_Process' AND TargetInstance.Name = 'Notepad.exe'"
 
        //創(chuàng)建事件查詢的偵聽(tīng)器(ManagementEventWatcher)
        var wCreate = new ManagementEventWatcher(qCreate);
        var wDelete = new ManagementEventWatcher(qDelete);
 
        // 注冊(cè)啟動(dòng)事件
        wCreate.EventArrived += (sender, e) =>
        {
            Console.WriteLine("開(kāi)啟進(jìn)程:{0}", GetInfo(e.NewEvent));
        };
        // 注冊(cè)關(guān)閉事件
        wDelete.EventArrived += (sender, e) =>
        {
            Console.WriteLine("關(guān)閉進(jìn)程:{0}", GetInfo(e.NewEvent));
        };
 
        //開(kāi)始異步偵聽(tīng)
        wCreate.Start();
        wDelete.Start();
         
        Console.ReadLine();
    }
 
    /// <summary>
    /// 輸出事件對(duì)應(yīng)的ManagementBaseObject(本例中的Win32_Process實(shí)例)的信息
    /// </summary>
    private static string GetInfo(ManagementBaseObject obj)
    {
        var instance = (ManagementBaseObject)obj["TargetInstance"];
        return string.Format("{0} - {1} - {2}", instance["Name"], instance["ProcessId"], DateTime.Now);
    }
 
}

調(diào)用示例

稍加修改一下就可以用來(lái)實(shí)現(xiàn)一個(gè)守護(hù)進(jìn)程,具體用途應(yīng)該都懂得。 

到此這篇關(guān)于C#使用WMI實(shí)現(xiàn)監(jiān)聽(tīng)進(jìn)程的啟動(dòng)和關(guān)閉的文章就介紹到這了,更多相關(guān)C# WMI監(jiān)聽(tīng)進(jìn)程內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Unity實(shí)現(xiàn)10天簽到系統(tǒng)

    Unity實(shí)現(xiàn)10天簽到系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了Unity實(shí)現(xiàn)10天簽到系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-04-04
  • C#通過(guò)經(jīng)緯度計(jì)算2個(gè)點(diǎn)之間距離的實(shí)現(xiàn)代碼

    C#通過(guò)經(jīng)緯度計(jì)算2個(gè)點(diǎn)之間距離的實(shí)現(xiàn)代碼

    這篇文章主要介紹了C#通過(guò)經(jīng)緯度計(jì)算2個(gè)點(diǎn)之間距離實(shí)現(xiàn)代碼,本文對(duì)實(shí)現(xiàn)原理、經(jīng)緯度基本知識(shí)等一并做了講解,需要的朋友可以參考下
    2014-08-08
  • C# TSC打印二維碼和條形碼的實(shí)現(xiàn)方法

    C# TSC打印二維碼和條形碼的實(shí)現(xiàn)方法

    下面小編就為大家分享一篇C# TSC打印二維碼和條形碼的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • 使用C#判斷一個(gè)字符串是否包含大寫(xiě)字符的五種方法

    使用C#判斷一個(gè)字符串是否包含大寫(xiě)字符的五種方法

    本文提供了五種判斷字符串是否包含大寫(xiě)字符的方法及其實(shí)現(xiàn)源碼,文中通過(guò)代碼示例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-12-12
  • C# 面向?qū)ο蟮幕驹瓌t

    C# 面向?qū)ο蟮幕驹瓌t

    什么是面向?qū)ο蟮幕驹瓌t?設(shè)計(jì)原則是基本的工具,應(yīng)用這些規(guī)則可以使你的代碼更加靈活、更容易維護(hù),更容易擴(kuò)展。
    2009-11-11
  • PropertyGrid自定義控件使用詳解

    PropertyGrid自定義控件使用詳解

    這篇文章主要為大家詳細(xì)介紹了PropertyGrid自定義控件的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • C#中EventWaitHandle的用法小結(jié)

    C#中EventWaitHandle的用法小結(jié)

    EventWaitHandle是C#中用于線程間同步的一個(gè)類,它提供了對(duì)共享資源的訪問(wèn)控制,以及線程間的同步機(jī)制,本文就來(lái)介紹一下EventWaitHandle用法,具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-04-04
  • 游戲開(kāi)發(fā)之隨機(jī)概率的選擇算法

    游戲開(kāi)發(fā)之隨機(jī)概率的選擇算法

    這篇文章主要介紹了游戲開(kāi)發(fā)之隨機(jī)概率的選擇算法,需要的朋友可以參考下
    2015-07-07
  • C#數(shù)組初始化簡(jiǎn)析

    C#數(shù)組初始化簡(jiǎn)析

    C#數(shù)組與其它C系列語(yǔ)言有著很多的不同,以前接觸的時(shí)候理解出現(xiàn)很大的偏差。尤其是對(duì)多維數(shù)組的認(rèn)識(shí),本文將詳細(xì)介紹C#數(shù)組初始化,需要的朋友可以參考下
    2012-11-11
  • WPF制作帶小箭頭的按鈕完整代碼

    WPF制作帶小箭頭的按鈕完整代碼

    WPF(Windows Presentation Foundation)是微軟推出的基于Windows 的用戶界面框架。下面通過(guò)本文給大家介紹WPF制作帶小箭頭的按鈕完整代碼,需要的朋友參考下吧
    2017-12-12

最新評(píng)論