Activar/desactivar radio/adaptador Bluetooth desde cmd/powershell en Windows 10
Una tarea tan sencilla, se diría, y no he encontrado una solución satisfactoria. Lo que he intentado (con la reproducción de música a través de un altavoz conectado por Bluetooth para saber realmente el estado de la radio):
- usando devcon como admin:
devcon disable USB\VID_8087&PID_07DC&REV_0001
(que es el HW ID de mi adaptador Bluetooth)... requiere reiniciar para funcionar... - usando powershell como admin:
Disable-NetAdapter "Bluetooth Network Connection 3"
(que es la traducción del nombre de mi adaptador Bluetooth)... desactiva el controlador PAN, pero un altavoz Bluetooth sigue reproduciendo música... - usando net como admin:
net stop bthserv
... en realidad no apaga la radio (el altavoz BT sigue reproduciendo música) - usando .NET: La página más relevante en MSDN no dice ni una palabra sobre encender/apagar el adaptador.
- usando explorer:
ms-settings:bluetooth
oexplorer.exe %LocalAppData%\Packages\windows.immersivecontrolpanel_cw5n1h2txyewy\LocalState\Indexed\Settings\cs-CZ\AAA_SettingsPagePCSystemBluetooth.settingcontent-ms
... abre el panel de configuración de Bluetooth, pero sigo teniendo que hacer clic en el conmutador
No puedo creer que Microsoft sea tan ignorante como para no proporcionar un comando de este tipo...
28
3
Después de renunciar a buscar soluciones prefabricadas, he descubierto que las aplicaciones de la Plataforma Universal de Windows tienen acceso a la API de radiocontrol.
Así que fusioné un ejemplo de aplicación de radiocontrol con una aplicación controlada por línea de comandos, y el resultado está aquí: https://github.com/peci1/RadioControl . Está publicada en Windows Store.
En general, no es posible simplemente dejar que la aplicación se ejecute en segundo plano, por lo que necesita para poner en marcha primero la interfaz gráfica de usuario, y luego se puede llamar desde la línea de comandos como
Las características básicas que esta aplicación necesita son:
A continuación, también es necesario añadir la capacidad de Radios al manifiesto de la aplicación:
Y para permitir el control desde la línea de comandos, es necesario anular el método
protected override async void OnActivated(IActivatedEventArgs args)
en App.xaml.cs y hacer el procesamiento en una rama como esta:He aquí una solución parcial:
wmic path Win32_PNPEntity where "caption like '%bluetooth%' AND DeviceID like 'USB\%'" call disable
ciertamente hace desaparecer el interruptor Bluetooth On/Off y el Administrador de Dispositivos informaEste dispositivo está deshabilitado. (Código 22)
. Si eso'es suficiente para matar a la radio, no estoy seguro.No soy capaz de encontrar documentación sobre qué argumentos acepta
call
. Creo que debería haber algún tipo derfkill
aquí.Ejecutar el siguiente comando desde el Símbolo del sistema (como administrador) funcionó:
Yo había utilizado previamente el mismo comando para desactivar mi adaptador Wi-Fi, y encontró que también trabajó con los otros adaptadores en: Panel de control > Red e Internet > Conexiones de red. Sólo cambia el argumento "nombre" por el nombre de tu adaptador. También puedes habilitarlo de nuevo cambiando el último argumento por
admin=enabled
.