更改无线网络适配器无线模式属性

4
我的学校使用802.11a,但我在家使用802.11b。这意味着每次我从家到学校或反之亦然,我都必须进入设备管理器 -> 网络适配器 -> Intel(R) WiFi Link 5100 AGN -> 属性 -> 高级 -> 无线模式 -> 更改值。
我想制作一个小的c#程序来为我完成这个任务,但我不知道从哪里开始。
有人能指点我一下吗?我不知道该从哪里开始。
我已经收到了来自MSDN的答案,但我还没有测试过。 http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/3a8a096d-b0e8-488c-930f-12735e5f7b4b

解决方案 经过一番尝试,我找到了一个解决方案。 首先,我使用 Process monitor 找出了手动更改无线模式时更改的注册表值。

现在更改该值包含两个步骤。无线模式的名称映射到一个数字。然后将这些数字映射到另一个注册表键中的无线模式编号。 因此,首先根据名称找到数字,然后在不同的注册表键中设置该值。

之后必须重置网络适配器,我使用 WMI 来完成。

我在 MSDN 的 这个主题 上获得了帮助。

我不确定它是否适用于所有 Windows 操作系统,也不确定它是否适用于所有网络适配器。无论如何,这就是我所做的。


你能发布一下需要更改的值是多少吗? - Rajesh
我必须在以下值之间切换:1. 802.11a 到 6. 802.11a/b/g。 - Casper Thule Hansen
3个回答

1

我已经调查过了,但是我找不到我要找的属性。我尝试了以下内容: 从Win32_NetworkAdapterConfiguration中选择* 从Win32_NetworkAdapter中选择* 从Win32_NetworkClient中选择* 从Win32_NetworkConnection中选择* 从Win32_NetworkLoginProfile中选择* 从Win32_NetworkProtocol中选择* - Casper Thule Hansen
转念一想,也许你需要“与”适配器驱动程序交互,而不是要求Windows完成此任务...事实上,Windows不知道设备如何工作,驱动程序知道(这就是为什么Windows需要它们的原因^^)。不幸的是,我不能确定,因为我从未尝试过这种事情:( - Alex
我还没有解决这个问题,但是你给了我一个提示去寻找答案。谢谢。 - Casper Thule Hansen

1
解决方案:在研究了一段时间后,我找到了一个解决方案。首先,我使用进程监视器来确定手动更改无线模式时更改了哪些注册表值。
现在更改该值包含两个步骤。无线模式的名称映射到一个数字。然后将这些数字映射到不同的注册表键中以获取无线模式号码。因此,我首先根据名称找到了数字,然后在不同的注册表键中设置了该值。
之后,必须重置网络适配器,我使用了WMI来完成。
我在MSDN的这个主题中得到了帮助。
我不确定它是否适用于所有Windows操作系统,也不确定它是否适用于所有网络适配器。无论如何,这就是我所做的。

0

有一个API编写用于访问所有的WiFi网络适配器。你可以在这里找到它的源代码。希望这能帮助你入门。


我已经调查过了,似乎本地wifi API更多关注网络连接而不是硬件。 - Casper Thule Hansen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接