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();
                    }
    
                }
            }
  • 相关阅读:
    80.共享内存实现进程通信
    79.cgi硬盘查询个人信息
    78.pipe多管道云端,客户端通信
    77.邮槽通信
    76.CGI编码
    strnpy函数
    POJ 1258 Agri-Net(Prim算法)
    0X7FFFFFFF,0X80000000
    Visual C++中min()和max()函数的使用
    POJ 2421 Constructing Roads(Kruskal算法)
  • 原文地址:https://www.cnblogs.com/WilliamJiang/p/2455347.html
Copyright © 2011-2022 走看看