You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

关于蓝牙开关批处理命令及蓝牙键鼠闲置断开问题的技术咨询

关于蓝牙开关批处理命令及蓝牙键鼠闲置断开问题的技术咨询

嘿,针对你遇到的微软Designer蓝牙键鼠闲置10分钟就断开的困扰,以及想要用命令行/批处理控制飞行模式或蓝牙开关的需求,我整理了问题梳理和可行方案:

问题背景

我的微软Designer蓝牙鼠标和键盘只要闲置10分钟就会断开连接,尝试了多种常规修复都无效,目前只能靠手动开关飞行模式重置连接计时,想通过任务计划自动执行这个操作,但找不到对应的命令行指令。

已尝试的无效方案

  • 论坛常规修复:取消蓝牙适配器的省电模式、重新安装设备和驱动、检查相关服务状态
  • 联系微软官方支持,未得到有效修复方案
  • 安装蓝牙命令行工具(Bluetooth Command Line Tools),能识别手机但无法检测到已连接的键鼠
  • 尝试微软键鼠中心(Microsoft Mouse and Keyboard Center),同样无法识别设备
  • 推测是蓝牙连接本身存在异常,临时 workaround 为手动开关飞行模式重置连接计时

可行解决方案

一、飞行模式的命令行控制方案

Windows没有原生直接控制飞行模式的命令,不过可以通过PowerShell模拟系统操作来实现切换,将以下命令写入批处理文件即可:

单次切换飞行模式(开/关)

powershell -Command "(New-Object -ComObject Shell.Application).ToggleDesktopNotificationCenter()" ; Start-Sleep -Seconds 1 ; powershell -Command "$wshell = New-Object -ComObject wscript.shell; $wshell.SendKeys('{TAB}'); Start-Sleep -Seconds 0.5; $wshell.SendKeys(' ')"

自动完成“开→关”循环的批处理

@echo off
:: 打开通知中心
powershell -Command "(New-Object -ComObject Shell.Application).ToggleDesktopNotificationCenter()" 
timeout /t 1 /nobreak >nul
:: 切换飞行模式为开启
powershell -Command "$wshell = New-Object -ComObject wscript.shell; $wshell.SendKeys('{TAB}'); Start-Sleep -Seconds 0.5; $wshell.SendKeys(' ')"
timeout /t 1 /nobreak >nul
:: 切换飞行模式为关闭
powershell -Command "$wshell = New-Object -ComObject wscript.shell; $wshell.SendKeys(' ')"
:: 关闭通知中心
powershell -Command "(New-Object -ComObject Shell.Application).ToggleDesktopNotificationCenter()"

二、单独控制蓝牙开关的精准方案

这个方案更推荐,无需影响其他网络设备,直接重置蓝牙连接:

方案1:使用devcon工具(微软官方设备控制台)

  1. 先获取蓝牙适配器硬件ID:打开设备管理器→找到蓝牙适配器→右键属性→详细信息→选择“硬件ID”,复制类似USB\VID_xxxx&PID_xxxx的内容
  2. 下载并配置devcon工具(可从Windows SDK提取),然后在批处理中写入:
@echo off
:: 禁用蓝牙适配器
devcon disable "USB\VID_xxxx&PID_xxxx"
timeout /t 2 /nobreak >nul
:: 启用蓝牙适配器
devcon enable "USB\VID_xxxx&PID_xxxx"

将命令中的USB\VID_xxxx&PID_xxxx替换为你实际的蓝牙硬件ID即可。

方案2:使用PowerShell脚本(Windows 10 1809及以上版本支持)

  1. 创建一个.ps1格式的PowerShell脚本,内容如下:
# 获取正常运行的蓝牙适配器对象
$bluetoothAdapter = Get-PnpDevice -FriendlyName "*Bluetooth*" | Where-Object {$_.Status -eq "OK"}
# 禁用蓝牙
Disable-PnpDevice -InstanceId $bluetoothAdapter.InstanceId -Confirm:$false
Start-Sleep -Seconds 2
# 启用蓝牙
Enable-PnpDevice -InstanceId $bluetoothAdapter.InstanceId -Confirm:$false
  1. 用批处理调用这个脚本:
@echo off
powershell -ExecutionPolicy Bypass -File "C:\你的脚本路径\bluetooth_reset.ps1"

三、任务计划程序设置要点

创建自动任务时注意:

  • 触发器选择「当计算机闲置时」,设置闲置5分钟后触发
  • 操作选择「启动程序」,指向你的批处理文件或PowerShell脚本
  • 在「条件」选项卡取消勾选「唤醒计算机运行此任务」(按需选择)
  • 在「设置」选项卡勾选「如果任务失败,每隔X分钟重试」,提升稳定性

备注:内容来源于stack exchange,提问作者jmw

火山引擎 最新活动