日期:2014-05-18  浏览次数:21431 次

c#中怎么禁用和开启无线网卡?
其实禁用网卡我已经搞定了,但就是启用不了禁用的无线网卡-_-b,但是普通的物理网卡禁用和启用都没问题!
不能启用无线网卡的原因是无线网卡禁用和开启时的Name不一样.开启的时候我的无线网卡Name是
Intel(R) PRO/Wireless 3945ABG Network Connection #2
但禁用后得到的名字是Intel(R) PRO/Wireless 3945ABG Network Connection
但我在控制面板->网络连接中查看我的无线不论是禁用还是启用时都是Intel(R) PRO/Wireless 3945ABG Network Connection #2名字.
倒底要怎么得到正确的网卡连接名?
下面的代码是我得到网卡的连接名,
C# code

            string manage = "SELECT * From Win32_NetworkAdapter";
            ManagementObjectSearcher searcher = new ManagementObjectSearcher(manage);
            ManagementObjectCollection collection = searcher.Get();
            List<string> netWorkList = new List<string>();
            foreach (ManagementObject obj in collection)
            {
                netWorkList.Add(obj["Name"].ToString());
                
            }
           this.cmbNetWork.DataSource = netWorkList;



------解决方案--------------------
首先,我不知道你是笔记本还是台机,如果是台机(或者网卡是PCMCIA).有可能是这样的,你在PCI槽中插上网卡,安装好驱动后,由于其他原因拔下过此卡后插在另一个槽上,或者你从其他机器上Ghost过来的系统后,系统又认到一个新网卡,这样,系统就记住了你网卡的2个名字Intel(R) PRO/Wireless 3945ABG Network Connection 和 Intel(R) PRO/Wireless 3945ABG Network Connection #2, 你用代码写的找到的可能是你第一个网卡的名字,禁用后第二个生效了,你的名字就不对了.

我一直用
ManagementClass mc = new ManagementClass("Win32_NetworkAdapter");
ManagementObjectCollection moc = mc.GetInstances();
foreach (ManagementObject mo in moc)

//循环查找用 mo["NetConnectionStatus"] , (string)mo["Caption"] 和 (string)mo["NetConnectionID"]来判断
}

另外,能否把禁用/启用普通网卡的有关代码给我一份,只需要查找到网卡名或连接名以后的禁/启方法即可. hbxuhb@yahoo.com.cn 交流.
------解决方案--------------------
菜鸟的帖子我来顶顶