在 WMI 中检测以太网电缆?
Detect an ethernet cable in WMI?
我在我的计算机上安装了 WMI 代码创建器,我是从 here 安装的。
我想知道 命名空间和 类(动态或静态) 我需要从 WMI 代码创建器应用程序 select 中做什么,如下所示图像以便在以太网电缆连接到计算机时在 WMI 中获得回叫。
和电脑连接时应该说"Ethernet cable connected",
与电脑断开连接时应该说"Ethernet cable disconnected"
在 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();
我在我的计算机上安装了 WMI 代码创建器,我是从 here 安装的。
我想知道 命名空间和 类(动态或静态) 我需要从 WMI 代码创建器应用程序 select 中做什么,如下所示图像以便在以太网电缆连接到计算机时在 WMI 中获得回叫。
和电脑连接时应该说"Ethernet cable connected",
与电脑断开连接时应该说"Ethernet cable disconnected"
在 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();