Comment puis-je script un périphérique Bluetooth pour se connecter / déconnecter?

16

J'ai un casque Bluetooth que j'utilise à la fois pour écouter de la musique à partir de mon téléphone portable et pour écouter des vidéos sur mon ordinateur portable. Ils ne peuvent pas être connectés aux deux appareils à la fois ( notez ici ), donc je dois me déconnecter d'un appareil avant de me connecter à l'appareil suivant.

Pour ce faire sous Windows 7, je dois ouvrir Périphériques et imprimantes, ouvrir mes écouteurs Bluetooth et cliquer sur le bouton Connecter / Déconnecter. J'adorerais pouvoir exécuter un script qui déclenche ce bouton Connecter / Déconnecter. De cette façon, je pourrais avoir un raccourci sur le bureau ou ajouter un raccourci clavier.

Je l'ai quelque peu rationalisé en créant un raccourci vers la fenêtre des écouteurs Bluetooth (dans Périphériques et imprimantes, cliquez avec le bouton droit sur votre appareil Bluetooth et choisissez Créer un raccourci). Mais il serait bon de rationaliser davantage.

David Cook
la source
2
Oui. Mon ordinateur ne dispose pas de capacités Bluetooth, mais vous pouvez utiliser AutoHotkey pour automatiser le processus. Voir ma réponse ici pour des idées: superuser.com/questions/403620/…
iglvzx
Merci, bonne idée. Je vais l'essayer quand j'aurai une minute de rechange.
David Cook
@DavidCook Faites-nous savoir si vous l'avez trié, j'aimerais récupérer une copie de ce script.
BigElittles
Désolé @Big, je ne pense pas l'avoir jamais réglé. Heureux que vous ayez trouvé une solution.
David Cook

Réponses:

2

J'ai trouvé une question similaire, voici la résolution. /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 a déclaré qu'il recevait une boîte de message contextuelle, mais il est également sous Windows 8, ce qui pourrait être unique à sa configuration.

BigElittles
la source
2

En fait, une fois que tous les services utilisés par un appareil sont désactivés, l'appareil est automatiquement libéré et déconnecté par Windows. Dans mon exemple ci-dessous pour WH-1000XM3, ce sont la voix et la musique, et la plupart des écouteurs fonctionneront de la même manière. Cela dépendra bien sûr du périphérique utilisé.

Vous aurez besoin des outils de ligne de commande Bluetooth .

La voix est en fait le service mains libres (HFP) et la musique n'est qu'un récepteur audio (A2DP). Les identifiants de service seront nécessaires et ils peuvent être découverts en utilisant la btdiscoverycommande du package ci-dessus, ou via la liste des services Bluetooth . La voix HFP est la 111emusique A2DP 110b.

btcomAide par ligne de commande:

Usage:

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.

Pour déconnecter l'appareil, émettez ce qui suit (ne fonctionne que lorsqu'il est exécuté en tant qu'administrateur dans mon cas, en utilisant 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

Pour vous reconnecter, émettez la même chose avec -cau lieu de -r. Cela fonctionne pour d'autres appareils, pas seulement pour les écouteurs, tant que tous les services / profils connectés par Windows sont désactivés / activés.

Remarque: l'utilisation -n <friendly name>est beaucoup plus lente que l'utilisation en -b <address>raison de l'exécution de la découverte Bluetooth.

MarcinJ
la source