我有一个问题,我需要启用已经禁用的卡,WMI NetworkAdapter上的搜索器不返回该对象.
我可以想到一种可能的方法来做到这一点,但我一直无法让它工作,那就是创建一个使用它作为构造函数名称的managementObject.但这只是抛出异常
{\\.\root\CIMV2:Win32_NetworkAdapter.NetConnectionID='Wireless Network Connection'}
另一种方法是封装netsh并启用设备,这有点难看,或者使用shell32/dll"启用"来执行相同操作,再次,只传递名称.我已经从注册表扫描中获取名称HKLM\SYSTEM\CurrentControlSet\Network并查找MediaType = 2以获取无线设备的字符串列表.如果我在启用适配器的同时运行应用程序,那么一切都很好,因为我可以获得无线设备的networkObject,但是如果应用程序在禁用无线设备时启动,则一切都会崩溃.
谢谢
编辑:这是我喜欢的代码,但没有去:(
using System;
using System.Management;
class Sample
{
public static int Main(string[] args)
{
ManagementObject mObj = new ManagementObject("\\\\.\\root\\CIMV2:Win32_NetworkAdapter.NetConnectionID=\"Wireless Network Connection\"");
mObj.InvokeMethod("Enable", null);
return 0;
}
}
Run Code Online (Sandbox Code Playgroud)