Как включить / выключить беспроводное радио в Windows?

Я ищу API для программного включения и выключения беспроводной радиосвязи в Windows, как это делает следующий элемент интерфейса Windows 10:

введите описание изображения здесь

  • Необходимо включить / выключить Wi-Fi, Bluetooth или широкополосный мобильный доступ
  • Для Windows 7, 8 и 10
  • Это НЕ телефон
  • C#/.NET4.5 было бы идеально, но C++/Win32 тоже будет работать

3 ответа

В Windows 10 вы можете использовать API-интерфейсы Radio Manager для управления различными состояниями радиосвязи. Вы можете найти полные примеры приложений здесь (как на C#, так и на C++).

Сначала вам нужно получить доступ ко всем системным радиоприемникам. Это должно быть вызвано в потоке пользовательского интерфейса:

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

Итак, в общем, что вам нужно сделать, это перечислить сетевые адаптеры (отфильтровать беспроводные, Bluetooth и мобильные широкополосные сети) и переключить их состояние?

Не удивительно, что есть 3 близких голоса, так как SO полон связанных вопросов и ответов:

  • Это демонстрирует C# + WMI
  • Это демонстрирует API установки устройства C++ + WINAPI

Один из них должен стать хорошей отправной точкой, чтобы собрать то, что вам нужно.

Ну, я знаю, что вы можете управлять беспроводным соединением с

netsh interface set interface name="Local Area Connection" через линию cmd.

Так что, возможно, в C# вы могли бы сделать Process.Start("netsh", "set name=\"Local Area Connection\""); изменить настройки Wi-Fi. Я уверен, что вы можете скачать утилиту bluetooth cmd line и сделать что-то подобное с этим.

Я смогу протестировать позже, когда доберусь до своего компьютера с Windows, но сейчас не могу, надеюсь, это поможет.

Другие вопросы по тегам