如何在Windows中打开/关闭无线广播?

时间:2016-06-09 19:51:02

标签: c# c++ .net winapi wdk

我正在寻找一种API,以编程方式在Windows中打开和关闭无线电,就像下面的Windows 10 UI元素一样:

enter image description here

  • 需要打开/关闭Wi-Fi,蓝牙或移动宽带
  • 适用于Windows 7,8和10
  • 这不是电话
  • C#/。NET4.5将是理想的,但C ++ / Win32也会起作用

3 个答案:

答案 0 :(得分:5)

对于Windows 10,您可以使用Radio Manager API来控制不同的无线电状态。你可以找到完整的sample apps here(C#和C ++)。

首先,您需要访问所有系统无线电。必须在UI线程中调用它:

var accessLevel = await Radio.RequestAccessAsync();

然后,您可以在系统上找到所有无线电(示例描述了访问无线电的其他方式):

var radios = await Radio.GetRadiosAsync();

给定一个无线电对象,然后您可以通过以下方式更改状态:

Radio radio = SOME_RADIO;
radio.StateChanged = Radio_StateChangedCallback; // Called when the radio state completes the change
radio.SetStateAsync(RadioState.On); // Or RadioState.Off

答案 1 :(得分:0)

因此,一般来说,您需要做的是枚举网络适配器(过滤掉无线,蓝牙和移动宽带)并切换其状态?

没有奇迹,因为SO充满了相关的问题和答案,有3个投票结果:

  • This演示了C#+ WMI
  • This演示了C ++ + WINAPI设备安装API

其中一个应该是一个公平的起点,将你需要的东西组合在一起。

答案 2 :(得分:-1)

我知道你可以用

操纵无线连接 通过cmd行

netsh interface set interface name="Local Area Connection"

所以也许在c#中你可以做一个Process.Start("netsh", "set name=\"Local Area Connection\"");来改变wifi设置。我相信你可以下载一个蓝牙cmd线实用程序,并做一些类似的事情。

当我登上我的Windows机器时,我将能够稍后测试,但我现在不能,希望这会有所帮助。