C# MSNdis_状态MediaDisconnect和设备唯一名称
我正在使用ManagementEventWatcher使用System.Management监视网线断开 使用WQL的ManagementEventWatcher:C# MSNdis_状态MediaDisconnect和设备唯一名称,c#,wmi,wql,C#,Wmi,Wql,我正在使用ManagementEventWatcher使用System.Management监视网线断开 使用WQL的ManagementEventWatcher:从MSNdis\u StatusMediaDisconnect中选择*, 当事件到达时,将触发以下方法: private void ServiceNetWorkStatusWmiDisconnected(object sender, EventArrivedEventArgs args) { string instanceNa
从MSNdis\u StatusMediaDisconnect中选择*,
当事件到达时,将触发以下方法:
private void ServiceNetWorkStatusWmiDisconnected(object sender, EventArrivedEventArgs args)
{
string instanceName = args.NewEvent.Properties["InstanceName"].Value as string;
ServiceNetWorkStatusWmi = string.Format("Network disconnected ({0})", instanceName);
Console.WriteLine(ServiceNetWorkStatusWmi);
}
问题是:
我有两个网络接口,来自同一个制造商,两种情况下,InstanceName具有相同的值,我无法识别哪个网络被拔出
我尝试了EventArrivedEventArgs中的所有属性,但它们没有设备的约束id。。。就像一个设备Id
我怎样才能知道网络接口是否已拔出?请查看“Win32\u NetworkAdapter.NetConnectionID”。这是-在我的机器上[!!]-您将在网络连接[控制面板]中看到的相同字符串,它应该是相同的值,如“MSNdis_EnumerateAdapter.InstanceName=”中所示
也许,这有帮助
br--mabramabra,如果我对Win32_NetworkAdapter执行另一个WQL,我可以查看断开连接的NetConnectionId。。。但问题是当MSNdis_StatusMediaDisconnect事件到达时,我在对象发送方上没有AdapterId,在EventArrivedEventArgs上也没有!!!!那太糟糕了!!!因此,当事件到达时,我必须执行另一个WQL以了解netadapter。。。我认为这不是个好办法。。。