相关疑难解决方法(0)

如何在c#中禁用/启用网络连接

基本上我正在运行一些性能测试,并且不希望外部网络成为阻力因素.我正在研究禁用网络局域网的方法.以编程方式执行此操作的有效方法是什么?我对c#感兴趣.如果有人有一个代码片段,可以驱动点回家很酷.

c# networking lan

23
推荐指数
3
解决办法
4万
查看次数

通过WinAPI禁用/启用网络接口

这是我尝试在Windows上禁用/启用网络适配器:

void EnableNetDevice(bool aState, int index)
{
  HDEVINFO NetPnPHandle;
  SP_PROPCHANGE_PARAMS PCHP;
  SP_DEVINFO_DATA DeviceData;
  NetPnPHandle = SetupDiGetClassDevs(&GUID_DEVCLASS_NET, 0, 0, DIGCF_PRESENT);

  if (NetPnPHandle == INVALID_HANDLE_VALUE)
  {
        return;
  }

  DeviceData.cbSize = sizeof(SP_DEVINFO_DATA);
  SetupDiEnumDeviceInfo(NetPnPHandle, index, &DeviceData);
  PCHP.ClassInstallHeader.cbSize = sizeof(SP_CLASSINSTALL_HEADER);

  if (SetupDiSetClassInstallParams(NetPnPHandle,&DeviceData,&PCHP.ClassInstallHeader,sizeof(SP_PROPCHANGE_PARAMS)))
  {
        PCHP.ClassInstallHeader.cbSize = sizeof(SP_CLASSINSTALL_HEADER);
        PCHP.ClassInstallHeader.InstallFunction = DIF_PROPERTYCHANGE;
        PCHP.HwProfile = 0;
        PCHP.Scope = DICS_FLAG_CONFIGSPECIFIC;
        if (aState) PCHP.StateChange = DICS_ENABLE;
        else  PCHP.StateChange = DICS_DISABLE;
        SetupDiSetClassInstallParams(NetPnPHandle,&DeviceData,&PCHP.ClassInstallHeader,sizeof(SP_PROPCHANGE_PARAMS));
        SetupDiCallClassInstaller(DIF_PROPERTYCHANGE,NetPnPHandle,&DeviceData);
  }

  DeviceData.cbSize = sizeof(SP_DEVINFO_DATA);
  SetupDiDestroyDeviceInfoList(NetPnPHandle);
}
Run Code Online (Sandbox Code Playgroud)

问题是它在Windows XP上完美运行在Win 7上不起作用 :(

你能帮我找一下这个bug吗?

非常感谢你!

c++ networking winapi

6
推荐指数
1
解决办法
2832
查看次数

标签 统计

networking ×2

c# ×1

c++ ×1

lan ×1

winapi ×1