2016-06-09 83 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