8000 C++ 通过 COM 组件 启用\禁用\查看 网卡状态 · Issue #96 · holdyounger/ScopeBlog · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content
C++ 通过 COM 组件 启用\禁用\查看 网卡状态 #96
Open
@holdyounger

Description

@holdyounger

C++ 通过 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");

blog link C++ 通过 COM 组件 启用\禁用\查看 网卡状态

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions

      0