zoukankan      html  css  js  c++  java
  • 监控USB网卡插拔

     ManagementEventWatcher getEventWatcher = null;
                WqlEventQuery getEventQuery = null;
                ManagementOperationObserver getObserver = new ManagementOperationObserver();
                ManagementScope getScope = new ManagementScope("root\\CIMV2");
                getScope.Options.EnablePrivileges = true;
    
                try
                {
                    getEventQuery = new WqlEventQuery();
                    getEventQuery.EventClassName = "__InstanceOperationEvent";
                    getEventQuery.WithinInterval = new TimeSpan(0, 0, 0, 1);//查询的频率
                    getEventQuery.Condition = @"TargetInstance ISA 'Win32_NetworkAdapter'";//设置查询条件
                    getEventWatcher = new ManagementEventWatcher(getEventQuery);
                    getEventWatcher.EventArrived += new EventArrivedEventHandler(getEventWatcher_EventArrived);
                    getEventWatcher.Start();//Start Watch Event

    下面是 getEventWatcher_EventArrived

            void getEventWatcher_EventArrived(object sender, EventArrivedEventArgs e)
            {
    
                ManagementBaseObject getBaseObject = (ManagementBaseObject)e.NewEvent;
                if ((getBaseObject.ClassPath.ClassName == "__InstanceModificationEvent"))
                {
                    NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
    
                    bool isContains = false;
                    foreach (NetworkInterface adapter in adapters)
                    {
    
                        if (adapter.Description.Contains("HUAWEI"))
                        {
                            isContains = true;
                            break;
                        }
                        else
                        {
                            isContains = false;
                        }
                    }
                    if (isContains)
                    {
                        startDownload();
                    }
                    else
                    {
                        pauseDownload();
                    }
    
                }
            }
  • 相关阅读:
    C# 哈希表
    C# 连接SQL Server数据库的连接字符串<转>
    C# ADO.NET中的五个主要对象<转>
    C# integrated security=SSPI<转>
    C# ADO.NET访问SQL Server数据库<转>
    C# .NET 页面间传值的几种方法<转>
    C# Datatable删除行的Delete和Remove方法
    C# DataTable转json
    CSP2019 爆炸记
    停更通知
  • 原文地址:https://www.cnblogs.com/WilliamJiang/p/2455347.html
Copyright © 2011-2022 走看看