static bool checkIsNetwork()
{
Sleep(100);
CoInitialize(NULL);
// 通过NLA接口获取网络状态
IUnknown *pUnknown = NULL;
BOOL bOnline = false;
//是否在线
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;
}
int main(){
while (!checkIsNetwork());
return 0;
}
【C++】检测网络是否可用
最新推荐文章于 2024-07-11 18:56:56 发布