2016-06-09 82 views
0

我正在寻找一个API以编程方式打开或关闭Windows中的无线电台,就像下面的Windows 10的用户界面元素的作用:如何在Windows中打开/关闭无线电台?

enter image description here

  • 需要开启/关闭的Wi- Fi,蓝牙或移动宽带
  • 对于Windows 7,第8和10
  • 这是不是一个电话
  • C#/。NET4.5将是理想的,但C++/Win32的将工作太

回答

-1

嗯,我知道你可以操纵通过CMD符合

netsh interface set interface name="Local Area Connection"无线连接。

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

以后我可以在我的Windows机器上测试,但我现在不能这样做,希望这会有所帮助。

+1

非常感谢,但我需要一个API,而不是一个命令行应用程序 –

+0

也许这些nugets将是有益的,然后http://www.robmiles.com/bluetooth-经理https://www.nuget。 org/packages/SimpleWifi/1.0.0 – Steezens

0

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

无奇不有,有3密切票,因为SO充满了相关的问题和答案:

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

其中之一应该是将您需要的东西放在一起的公平起点。

+0

我没有问如何禁用网络**设备**,我问如何切换**收音机** - 差别很大。当您在Windows用户界面中切换开关(请参见屏幕截图)时,设备不会从Windows(即从设备管理器)中删除,交换机只需打开/关闭无线电。您提到的所有示例均禁用该设备。 –

+0

@WilliamLeara我可能是错的,但自从您提到Windows 7以来 - 它甚至可以区分启用/禁用设备并打开和关闭无线电?并且禁用该设备不会将其删除,它与您从控制面板中的上下文菜单中禁用该设备一样。 Windows 8和当然提供API来打开/关闭无线电,但如果您需要Windows 7兼容性,那么我不确定是否有更好的方法,然后禁用该设备。 –

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 
+0

非常感谢!不幸的是,我也必须支持Win8,你的例子是一个Win10专用的通用应用程序。 (如果我正确理解):( –

+0

是的,我敢肯定,这只适用于Windows 10.这[post](http://stackoverflow.com/questions/24235524/are-there-apis-to- enable-disable-bluetooth-on-windows-8-1)可能对8.1有帮助!我希望至少可以让你的一部分:) – Carter