检测WMI中的以太网电缆?

时间:2017-08-22 12:55:44

标签: c# .net wmi code-generation ethernet

我已经在我的计算机上设置了WMI代码创建者,我已经从here安装了该代码。

我想知道命名空间和类(动态或静态)我需要从WMI代码创建器应用程序中选择,如下图所示,以便在以太网中获取WMI回调电缆已连接到计算机。

  • 应该说"连接以太网电缆"当它与计算机连接时,

  • 它应该说"以太网电缆断开"当它与计算机断开连接时

选择合适的命名空间和类后,我将使用代码创建者的C#代码并在我的计算机上运行它以检测计算机上的网络更改。

enter image description here

1 个答案:

答案 0 :(得分:1)

这样的事情应该让你开始:

    var q = new WqlEventQuery("SELECT * FROM __InstanceModificationEvent WITHIN 10 WHERE TargetInstance ISA 'Win32_NetworkAdapter'");

    var hostInstanceWatcher = new ManagementEventWatcher(new ManagementScope(@"\\.\root\CIMV2"), q);
    hostInstanceWatcher.EventArrived += (sender, eventArgs) =>
    {
        var adapter = (ManagementBaseObject) eventArgs.NewEvent.GetPropertyValue("TargetInstance");
        var status = (ushort) adapter.GetPropertyValue("NetConnectionStatus");
        switch (status)
        {
            case 2: Console.WriteLine("Connected");
                break;
            case 7: Console.WriteLine("Disconnected");
                break;
        }
    };
    hostInstanceWatcher.Start();
    Console.WriteLine("Press any key to quit");
    Console.ReadKey();