概述:通过 COM 对象操作网卡
#include <NetCon.h>
void ChangeNetState()
{
CoInitialize(NULL);
INetConnectionManager* pNetManager;
INetConnection* pNetConnection;
IenumNetConnection* penum;
if (S_OK != CoCreateInstance(CLSID_ConnectionManager, NULL, CLSCTX_SERVER, IID_INetConnectionManager, (void**)&pNetManager))
{
return ;
}
pNetManager->EnumConnections(NCME_DEFAULT, &pEnum);
pNetManager->Release();
if (NULL == pEnum)
{
return ;
}
ULONG celtFetched;
while (pEnum->Next(1, &pNetConnection, &celtFetched) == S_OK)
{
NETCON_PROPERTIES* properties;
pNetConnection->GetProperties(&properties);
//properties->pszwName; //网络连接的名称
//properties->pszwDeviceName; //网卡名称
//properties->Status; //状态
//pNetConnection->Disconnect(); //禁用网卡
//pNetConnection->Connect(); //启用网卡
}
CoUninitialize();
return ;
}
NETCON_PROPERTIES 结构体使用的变量为宽字符,在打印时需要在程序入口调用以下函数才能正确输出。
setlocale(LC_CTYPE, "chs");