脚本连接/断开配对的蓝牙设备

Mar*_*inJ 14 audio script powershell bluetooth windows-10

有没有办法通过powershell或任何其他工具连接和断开配对的蓝牙设备?基本上按下蓝牙和其他设备中的连接/断开按钮,除了从任何类型的命令行(Powershell、使用某些命令行工具的 bat、C#、C++ 中的代码等):

蓝牙和其他设备

我找到了这个答案,但它涉及取消配对和再次配对,这不起作用,因为我的耳机需要处于配对模式才能接受新配对。我宁愿不通过 AutoIt 或其他类似的软件模拟按键和鼠标点击。

Mar*_*inJ 14

我编写了 C++ 代码来使用Win32 蓝牙 APIBluetoothSetServiceState来完成它,但实际上使用蓝牙命令行工具就足够了。

事实证明,一旦设备使用的所有服务都被禁用,Windows 会自动释放设备并断开连接。就我而言,根据屏幕截图,这些是语音和音乐,大多数耳机的工作方式相同。
语音实际上是免提服务 (HFP),而音乐只是一个音频接收器 (A2DP)。服务标识符将是必要的,它们可以通过使用上面包中的btdiscovery命令或通过蓝牙服务列表来发现。HFP 语音是111e,A2DP 音乐是110b

每个btcom命令行帮助:

用法:

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.
Run Code Online (Sandbox Code Playgroud)

要断开设备连接,请发出以下命令(仅在我的情况下以管理员身份运行时有效,使用 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
Run Code Online (Sandbox Code Playgroud)

要再次连接,请使用-c而不是发出相同的命令-r。这适用于其他设备,而不仅仅是耳机,只要 Windows 连接的所有服务/配置文件都被禁用/启用。

注意:由于执行蓝牙发现,-n <friendly name>使用比使用慢得多-b <address>

  • 我已经以可点击/可绑定 VBS 脚本的形式编写了您的解决方案,因此可以将其绑定到例如键盘上的某个媒体按钮:https://github.com/stanleyguevara/win10-bluetooth-headphones (3认同)

小智 9

win 10 快捷键https://www.windowscentral.com/best-windows-10-keyboard-shortcuts

win-key + K 打开侧边栏菜单并立即搜索蓝牙设备。然后单击已配对的设备并连接。


小智 6

如果 @MarcinJ 使用蓝牙命令行工具的解决方案对您来说太慢,特别是当您想在来电的同时配对设备时,请尝试创建 Windows 快捷方式:(
右键单击 > 新建 > 快捷方式)

%windir%\explorer.exe ms-settings-connectabledevices:devicediscovery
Run Code Online (Sandbox Code Playgroud)

它将在屏幕上弹出一个显示和音频面板,只需单击一下即可连接。
例如,可以在 上找到漂亮的 BT 快捷方式图标C:\Windows\System32\fsquirt.exe

  • 对于Win11,此和“Win”-“K”仅调出“Cast Display”侧菜单,不幸的是,这不再包括蓝牙设备。相反,“explorer.exe ms-settings:bluetooth”会显示正确的蓝牙连接窗口。 (4认同)