windows c++ 检测判断网络是否连通


#include <Netlistmgr.h>
static bool checkIsNetwork()
{
    CoInitialize(NULL);
    //  通过NLA接口获取网络状态
    IUnknown *pUnknown = NULL;
    BOOL   bOnline = TRUE;//是否在线  
    HRESULT Result = CoCreateInstance(CLSID_NetworkListManager, NULL, CLSCTX_ALL,         
    IID_IUnknown, (void **)&pUnknown);
    if (SUCCEEDED(Result))
    {
        INetworkListManager *pNetworkListManager = NULL;
        if(pUnknown)
            Result = pUnknown->QueryInterface(IID_INetworkListManager, (void 
                     **)&pNetworkListManager);
        if (SUCCEEDED(Result))
        {
            VARIANT_BOOL IsConnect = VARIANT_FALSE;
            if(pNetworkListManager)
            Result = pNetworkListManager->get_IsConnectedToInternet(&IsConnect);
            if (SUCCEEDED(Result))
            {
                bOnline = (IsConnect == VARIANT_TRUE) ? true : false;
            }


        }
        if (pNetworkListManager)
            pNetworkListManager->Release();
    }
    if(pUnknown)
        pUnknown->Release();
    CoUninitialize();
    return bOnline;
}

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值