在 WMI 中检测以太网电缆?

Detect an ethernet cable in WMI?

我在我的计算机上安装了 WMI 代码创建器,我是从 here 安装的。

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

在 select 正确的命名空间和 class 之后,我将使用代码创建者的 C# 代码并 运行 它在我的计算机上检测计算机上的网络变化。

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

    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();