AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1426949
Accepted
MarcinJ
MarcinJ
Asked: 2019-04-19 02:56:54 +0800 CST2019-04-19 02:56:54 +0800 CST 2019-04-19 02:56:54 +0800 CST

Script conectando/desconectando um dispositivo Bluetooth emparelhado

  • 772

Existe uma maneira, por meio do powershell ou de qualquer outra ferramenta, de conectar e desconectar um dispositivo Bluetooth emparelhado? Basicamente, pressione o botão Conectar/Desconectar no Bluetooth e em outros dispositivos, exceto na linha de comando de qualquer tipo (Powershell, bat usando algumas ferramentas de linha de comando, código em C#, C++, etc.):

Bluetooth e outros dispositivos

Encontrei esta resposta , mas envolve desemparelhar e emparelhar novamente, o que não funcionará porque meus fones de ouvido precisam estar no modo de emparelhamento para aceitar um novo emparelhamento. Prefiro não simular pressionamentos de teclas e cliques do mouse via AutoIt ou algum outro software como esse.

windows-10 audio
  • 6 6 respostas
  • 25230 Views

6 respostas

  • Voted
  1. Best Answer
    MarcinJ
    2019-04-20T14:48:24+08:002019-04-20T14:48:24+08:00

    Escrevi o código C++ para fazer isso usando a API do Bluetooth do Win32BluetoothSetServiceState , mas na verdade é suficiente usar as ferramentas de linha de comando do Bluetooth .

    Acontece que, uma vez que todos os serviços em uso por um dispositivo são desativados, o dispositivo é liberado e desconectado pelo Windows automaticamente. No meu caso, são voz e música, conforme a captura de tela, e a maioria dos fones de ouvido funcionará da mesma maneira.
    A voz é, na verdade, o serviço mãos livres (HFP) e a música é apenas um coletor de áudio (A2DP). Identificadores de serviço serão necessários e podem ser descobertos através do uso do btdiscoverycomando do pacote acima, ou através da lista de serviços Bluetooth . Voz HFP é 111e, música A2DP é 110b.

    Por btcomajuda da linha de comando:

    Uso:

    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.
    

    Para desconectar o dispositivo, emita o seguinte (funciona apenas quando executado como administrador no meu caso, usando o 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
    

    Para se conectar novamente, emita o mesmo com -cem vez de -r. Isso funciona para outros dispositivos, não apenas fones de ouvido, desde que todos os serviços/perfis conectados pelo Windows sejam desativados/ativados.

    Observação: usar -n <friendly name>é muito mais lento do que usar -b <address>devido à descoberta de Bluetooth.

    • 21
  2. Popkornak
    2021-11-05T05:56:23+08:002021-11-05T05:56:23+08:00

    Caso a solução de @MarcinJ com Bluetooth Command Line Tools seja muito lenta para você, especialmente caso você queira emparelhar o dispositivo enquanto uma chamada recebida, tente criar um atalho do Windows:
    (Clique com o botão direito do mouse > Novo > Atalho)

    %windir%\explorer.exe ms-settings-connectabledevices:devicediscovery
    

    Ele exibirá um painel de exibição e áudio diretamente na tela, que está a um clique de conectar.
    E um belo ícone BT para o atalho pode ser encontrado, por exemplo, em C:\Windows\System32\fsquirt.exe.

    • 4
  3. BaBis fLou
    2021-12-24T06:43:42+08:002021-12-24T06:43:42+08:00

    ganhe 10 atalhos https://www.windowscentral.com/best-windows-10-keyboard-shortcuts

    win-key + K abre o menu da barra lateral e procura instantaneamente por dispositivos bluetooth. em seguida, clique no seu dispositivo já emparelhado e conecte-se.

    • 3
  4. Smeerpijp
    2019-04-20T01:29:04+08:002019-04-20T01:29:04+08:00

    Talvez Get-PnPDevice, Disable-PnPDevicee Enable-PnPDevicefará o truque para você. Eu não fui capaz de testá-lo embora.

    Exemplo:

    $DeviceName = "YourDevice"
    $BTDevice =  Get-PnpDevice | Where-Object {$_.FriendlyName -eq $DeviceName -and $_.class -eq "Bluetooth"} 
    
    Disable-PnpDevice -InstanceId $BTDevice.DeviceID -Confirm:$false
    
    Enable-PnpDevice -InstanceId $BTDevice.DeviceID -Confirm:$false
    

    Altere a $DeviceNamevariável para o nome do seu dispositivo BT.

    Get-PnPDevice Enable-PnPDevice Disable-PnPDevice

    • 1
  5. postanote
    2019-04-19T13:53:09+08:002019-04-19T13:53:09+08:00

    Editado com base na resposta do OP.

    Olhando para a classe subjacente, esse item não é exposto para acesso programático.

    Dispositivo Bluetooth. Fechar método

    Quando será implementado Fechar/Desconectar? [Windows.Devices.Bluetooth.BluetoothDevice]

    Quando será implementado Fechar/Desconectar? Você está planejando ter uma desconexão? Dispose () não fecha a conexão

    849 inaugurado em 9 de janeiro de 2019

    Não parece haver outro documento da API para dizer o contrário. Portanto, parece que você está preso a SendKeys, AutoIT, etc., pelo menos por enquanto.

    • 0
  6. user1244032
    2020-11-25T00:51:45+08:002020-11-25T00:51:45+08:00

    Eu testei o script vbs abaixo com sucesso no Windows 10. Aqui estou simulando as teclas digitadas usando o SendKeyscomando. O número de {TAB}s será diferente em seu sistema para alcançar o nome do dispositivo bluetooth.

    Set WshShell = WScript.CreateObject("WScript.Shell")
    WshShell.Run "ms-settings:bluetooth"
    WScript.Sleep 2500 
    WshShell.SendKeys "{TAB}"
    WshShell.SendKeys "{TAB}"
    WshShell.SendKeys "{TAB}"
    WshShell.SendKeys "{ENTER}"
    WScript.Sleep 500 ' 
    WshShell.SendKeys "{TAB}"
    WScript.Sleep 500 ' 
    WshShell.SendKeys "{ENTER}"
    
    • -1

relate perguntas

  • O serviço de arbitragem USB da estação de trabalho VMware não inicia automaticamente

  • Como ativar o sensor de impressão digital no domínio e no diretório ativo do Linux

  • atalho do shell da área de trabalho no painel lateral do explorer

  • Por que não consigo enviar arquivos do Android para o Windows 10?

  • Abrir com em vários arquivos?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    Serviço do Windows 10 chamado AarSvc_70f961. O que é e como posso desativá-lo?

    • 2 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Marko Smith

    ssl.SSLCertVerificationError: falha na verificação do certificado [SSL: CERTIFICATE_VERIFY_FAILED]: não foi possível obter o certificado do emissor local (_ssl.c:1056)

    • 4 respostas
  • Marko Smith

    Como posso saber em qual unidade o Windows está instalado?

    • 6 respostas
  • Martin Hope
    Albin Como faço para ativar o WindowsXP agora que o suporte acabou? 2019-11-18 03:50:17 +0800 CST
  • Martin Hope
    fixer1234 O "HTTPS Everywhere" ainda é relevante? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    Kagaratsch O Windows 10 exclui muitos arquivos minúsculos muito lentamente. Algo pode ser feito para agilizar? 2019-09-23 06:05:43 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    Inter Sys Como Ctrl+C e Ctrl+V funcionam? 2019-05-15 02:51:21 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve