首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

WMI多网卡情况上怎么使用WQL语句查询指定网卡断开事件

2013-01-08 
WMI多网卡情况下如何使用WQL语句查询指定网卡断开事件 现在我遇到如下问题:电脑有两个网卡,但是使用WMI事

WMI多网卡情况下如何使用WQL语句查询指定网卡断开事件
 
现在我遇到如下问题:电脑有两个网卡,但是使用WMI事件通知的话,任意一个网卡网络断开都会捕获到消息。使用的WQL查询语句如下:

Select * from MSNdis_StatusMediaDisconnect

我想知道如何才能查询指定网卡的网络断开(网线拔除)时得到消息通知.  有没有类似 Select * from MSNdis_StatusMediaDisconnect where ...之类的WQL语句可供查询。 但是我不晓得MSNdis_StatusMediaDisconnect有没有可供查询的属性。请各位多多帮忙。。急死人啊。
[解决办法]
这个确实不太熟悉
再等等吧
一般不是太大众化的问题总是要看缘分的
[解决办法]
是你不会用吧?还是你不想动脑筋?


select * From Win32_LogicalDisk where drivetype=3
SELECT * FROM Win32_NetworkAdapterConfiguration WHERE DHCPEnabled=TRUE
SELECT Description FROM Win32_Account WHERE Name='Administrator'

其中drivetype/DHCPEnabled/Name分别是Win32_LogicalDisk、Win32_NetworkAdapterConfiguration、Win32_Account的属性。
在我这边WMI中没MSNdis_StatusMediaDisconnect这个类,如果它确实存在的话,应该会有属性表示连接状态的。
[解决办法]
HRESULT EventSink::Indicate(long lObjectCount, IWbemClassObject **apObjArray)
{
    HRESULT hres = S_OK;
 
    for (int i = 0; i < lObjectCount; i++)
    {
        cout << "Event occurred" << endl;
        IWbemClassObject *pObj = apObjArray[i];
 
        HRESULT hres;
???????_variant_t  instance;
        hres = pObj->Get(L"TargetInstance", 0, &instance, 0, 0);
????????IWbemClassObjectPtr pInstance(instance);
???????_variant_t  instanceName;
        hres = pInstance->Get(L"InstanceName", 0, &instanceName, 0, 0);

热点排行