| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1696 人关注过本帖
标题:禁用/启用网卡
只看楼主 加入收藏
x67449123
Rank: 2
等 级:论坛游民
帖 子:3
专家分:10
注 册:2019-12-27
结帖率:0
收藏
已结贴  问题点数:20 回复次数:2 
禁用/启用网卡
网上找的这段代码,禁用是没有问题的,但是启用无效...有人知道原因吗?


#include <stdio.h>
#include <windows.h>
#include <Setupapi.h>
#include <objbase.h>
#pragma comment(lib,"Setupapi.lib")


VOID EnumDevices(HDEVINFO hDevInfo ,INT State)
{
    SP_DEVINFO_DATA DeviceInfoData = { sizeof(SP_DEVINFO_DATA) };
    LPOLESTR guid;
    CHAR devName[128];
    CHAR instanceId[128];
    for (INT i = 0; SetupDiEnumDeviceInfo(hDevInfo, i, &DeviceInfoData); i++)
    {
        StringFromCLSID(DeviceInfoData.ClassGuid, &guid);
        SetupDiClassNameFromGuid(&DeviceInfoData.ClassGuid, devName, 128, NULL);
        if (!strcmp(devName, "Net"))
        {
            SetupDiGetDeviceInstanceId(hDevInfo, &DeviceInfoData, instanceId, 128, NULL);
            if (!strncmp(instanceId, "PCI", 3))
            {
                wprintf(L"%s\n", guid);
                printf("%s\n", devName);
                printf("%s\n", instanceId);
                SP_PROPCHANGE_PARAMS params = { sizeof(SP_CLASSINSTALL_HEADER) };
                params.ClassInstallHeader.InstallFunction = DIF_PROPERTYCHANGE;
                params.Scope = DICS_FLAG_CONFIGSPECIFIC;
                params.StateChange = State;
                params.HwProfile = 0;
                SetupDiSetClassInstallParams(hDevInfo, &DeviceInfoData, (SP_CLASSINSTALL_HEADER*)&params, sizeof(SP_PROPCHANGE_PARAMS));
                SetupDiChangeState(hDevInfo, &DeviceInfoData);
            }
        }
        CoTaskMemFree(guid);
    }
}

INT main()
{
    HDEVINFO hDevInfo = INVALID_HANDLE_VALUE;
    hDevInfo = SetupDiGetClassDevs(NULL, NULL, NULL, DIGCF_PRESENT | DIGCF_ALLCLASSES);
    if (INVALID_HANDLE_VALUE == hDevInfo)
        return GetLastError();
    EnumDevices(hDevInfo, DICS_ENABLE); //禁用:DICS_DISABLE,启用:DICS_ENABLE
    SetupDiDestroyDeviceInfoList(hDevInfo);
    return 0;
}

搜索更多相关主题的帖子: 禁用 sizeof NULL include INT 
2020-03-23 10:12
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:20 
a. 试试将 DICS_FLAG_CONFIGSPECIFIC 改为 DICS_FLAG_GLOBAL
b. 试试以管理员身份运行
c. 同时采取上面a、b的方式试试
2020-03-23 13:22
x67449123
Rank: 2
等 级:论坛游民
帖 子:3
专家分:10
注 册:2019-12-27
收藏
得分:0 
回复 2楼 rjsp
感谢,改成DICS_FLAG_GLOBAL成功了..
2020-03-23 15:40
快速回复:禁用/启用网卡
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.017045 second(s), 10 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved