Jak mogę napisać skrypt do urządzenia Bluetooth, aby się połączyć / rozłączyć?

16

Mam słuchawki Bluetooth, których używam zarówno do słuchania muzyki z telefonu komórkowego, jak i do słuchania filmów na laptopie. Nie można ich połączyć z obydwoma urządzeniami jednocześnie ( uwaga tutaj ), więc muszę się odłączyć od jednego urządzenia przed podłączeniem do następnego.

Aby to zrobić w systemie Windows 7, muszę otworzyć Urządzenia i drukarki, otworzyć słuchawki Bluetooth i kliknąć przycisk Connect / Disconnect. Chciałbym móc uruchomić skrypt uruchamiający ten przycisk Connect / Disconnect. W ten sposób mogłem mieć skrót na pulpicie lub dodać skrót klawiaturowy.

Usprawniłem go nieco, tworząc skrót do okna heaphones bluetooth (w Urządzenia i drukarki kliknij prawym przyciskiem myszy urządzenie Bluetooth i wybierz Utwórz skrót). Dobrze byłoby jednak usprawnić.

David Cook
źródło
2
Tak. Mój komputer nie ma funkcji Bluetooth, ale możesz za pomocą AutoHotkey zautomatyzować proces. Zobacz moją odpowiedź tutaj na pomysły: superuser.com/questions/403620/…
iglvzx
Dzięki, dobry pomysł. Wypróbuję to, kiedy będę miał wolną chwilę.
David Cook
@DavidCook Poinformuj nas, jeśli je rozwiążesz, chciałbym pobrać kopię tego skryptu.
BigElittles
Przepraszam @Big, chyba nigdy tego nie załatwiłem. Cieszę się, że znalazłeś rozwiązanie.
David Cook

Odpowiedzi:

2

Znalazłem podobne pytanie, oto rozdzielczość. /programming/29724513/automatically-adding-a-bluetooth-device-in-windows-8

@ECHO OFF
if exist toggle.txt goto :2
btpair -u
C:\NIRCMD\NIRCMDC setdefaultsounddevice "CompSpeak" 1
C:\NIRCMD\NIRCMDC setdefaultsounddevice "CompSpeak" 2

echo toggle>>toggle.txt

exit
:2
btpair -n"[Samsung] AirTrack" -p0000
C:\NIRCMD\NIRCMDC setdefaultsounddevice "Headphones" 1
C:\NIRCMD\NIRCMDC setdefaultsounddevice "Headphones" 2

del toggle.txt /q

exit

OP powiedział, że dostaje wyskakujące okienko z wiadomościami, ale jest także w systemie Windows 8, więc może to być unikalne dla jego konfiguracji.

BigElittles
źródło
2

Jak się okazuje, gdy wszystkie usługi używane przez urządzenie zostaną wyłączone, urządzenie zostanie automatycznie zwolnione i odłączone przez system Windows. W moim przykładzie poniżej dla WH-1000XM3 są to głos i muzyka, a większość słuchawek będzie działać w ten sam sposób. Będzie to oczywiście zależeć od używanego urządzenia.

Potrzebne będą narzędzia wiersza polecenia Bluetooth .

Głos to tak naprawdę usługa głośnomówiąca (HFP), a muzyka to tylko ujście dźwięku (A2DP). Konieczne będą identyfikatory usług, które można wykryć za pomocą btdiscoverypolecenia z powyższego pakietu lub za pomocą listy usług Bluetooth . Głos HFP brzmi 111e, muzyka A2DP 110b.

Na btcomlinii poleceń pomoc:

Stosowanie:

btcom {-c|-r} {-bBluetoothAddress | -nFriendlyName} [-s{sp|dun|GUID|UUID}]

 -c  Create association between COM port and a remote service (Enable non-COM service).
 -r  Remove association between COM port and a remote service (Disable non-COM service).
 -s  Remote service to use (Default is Serial Port Service)
 -b  Bluetooth address of remote device in (XX:XX:XX:XX:XX:XX) format. 
 -n  Friendly name of remote device.

Aby odłączyć urządzenie, wydaj następujące polecenie (działa tylko w moim przypadku jako administrator w systemie Windows 10 1809 (17763.437)):

"C:\Program Files (x86)\Bluetooth Command Line Tools\bin\btcom" -n "WH-1000XM3" -r -s111e
"C:\Program Files (x86)\Bluetooth Command Line Tools\bin\btcom" -n "WH-1000XM3" -r -s110b

Aby połączyć się ponownie, wydaj to samo z -czamiast -r. Działa to w przypadku innych urządzeń, nie tylko słuchawek, o ile wszystkie usługi / profile połączone z systemem Windows zostaną wyłączone / włączone.

Uwaga: korzystanie -n <friendly name>jest znacznie wolniejsze niż korzystanie z -b <address>powodu wykrywania Bluetooth.

MarcinJ
źródło