Вы должны войти, чтобы создавать сообщения и темы.

Включение/отключение Bluetooth через батник/сочетание клавиш

Страница 1 из 2►

Приветствую. Имеется ноутбук. Среди сочетаний fn+(F1-F12) нет отдельно клавиши под блютуз.
Частенько подключаю/отключаю блютуз-наушники. Мыши нет, пользуюсь в основном тачпадом, да и ноут слабоват. Постоянно "ехать" тачпадом в панель уведомлений, ждать пока откроется, включать кнопку блютуз, затем когда блютуз не нужен делать то же самое для отключения, много лишних действий, надоедающих при частом использовании блютуз.
Решил попробовать сделать через cmd батник, на запуск которого можно назначить сочетание клавиш.
Всё что нашёл в интернете это включение/отключение оборудования в диспетчере устройств через devcon.exe
Этот способ не подходит, так как просто отключает оборудование. Но нажатие на кнопку блютуз в панели уведомлений срабатывает не так. При выключенной кнопке в диспетчере виднеется только "Bluetooth Adapter". тык 
При включённой же кнопке в диспетчер добавляется ещё 6 устройств. тык
То есть по кнопке блютуз, устройства не "включаются/отключаются" а будто "извлекаются/вставляются"
Подкскажите в какую сторону копать, какой триггер срабатывает при нажатии кнопки в панели уведомлений, можно ли просто через тот же батник воздействовать напрямую на кнопку без возни с устройствами

Добрый🖐.
Пользуйтесь поиском.

Лайкнул Эльдар
Эльдар
«Любой дурак может знать. Дело в том, чтобы понять.» — Альберт Эйнштейн
Цитата: Mikhail от 20.10.2021, 01:40

Добрый🖐.
Пользуйтесь поиском.

Продолжать тему там или можно здесь? Тамашние варианты решения не работают. Во-первых, магазина нет, во-вторых, батник не работает, (делал по инструкции и запуск скриптов разрешал), в-третьих, мне нужно не cовсем то чтобы готовое решение, мне нужно разобраться на что воздействовать и как, чтобы уметь делать это на разных системах в дальнейшем при необходимости, так как мелкомягкие постоянно что-то меняют, сейчас скрипт не работает наверное именно потому что они что-то поменяли, мой билд win10 19043.1237

Здравствуйте, Эльдар.

А что конкретно у вас не работает?
Если Служба поддержки Bluetooth, в момент запуска ярлыка, отключена, то ярлык стоит запускать от Админа. Либо, в свойствах данной службы, тип запуска установить на СкопированоАвтоматически.

По поводу "мне нужно разобраться" — читайте здесь.

Лайкнул Эльдар
Эльдар
Лучший способ помочь себе — помогать другим.
Цитата: Яр от 20.10.2021, 14:13

Здравствуйте, Эльдар.

А что конкретно у вас не работает?
Если Служба поддержки Bluetooth, в момент запуска ярлыка, отключена, то ярлык стоит запускать от Админа. Либо, в свойствах данной службы, тип запуска установить на СкопированоАвтоматически.

По поводу "мне нужно разобраться" — читайте здесь.

По запуску bt_on от имени администратора блютуз не переходит в режим "вкл", в панели уведомлений не становится значок зелёным, в трее не появляется иконка блютуз, хотя сама служба при bt_off останавливается и при bt_on вроде как стартует.
По ссылке которую вы порекомендовали как раз обсуждается тот батник и скрипт powershell, что он не работает и та тема создана для решения проблем, но так и не найдено там нормального решения, только в середине снова ссылка на приложение в магазине windows. Штош, будем курить ман дальше, либо магазин придётся восстанавливать

В том то и дело, в чистом cmd его никак не решить, поэтому и был приведён вариант в powershell (ссылка, которую я вам дал), который, к слову, у меня работает.
Вызовите свойства ярлыка bt_on, вместо последней команды exit, впишите pause, примените и запустите ярлык снова. Скрин работы консоли, сюда.

Лучший способ помочь себе — помогать другим.
Цитата: Яр от 20.10.2021, 15:16

В том то и дело, в чистом cmd его никак не решить, поэтому и был приведён вариант в powershell (ссылка, которую я вам дал), который, к слову, у меня работает.
Вызовите свойства ярлыка bt_on, вместо последней команды exit, впишите pause, примените и запустите ярлык снова. Скрин работы консоли, сюда.Да 

Да мне любой способ подойдёт, хоть cmd хоть powershell хоть vbs хоть reg)) мне главное забиндить на любую горячую клавишу, либо создать ярлык (в свойствах ярлыка можно забиндить официально)

скрины: bt_off  bt_on и редактор powershell

ps. под "не то чтобы совсем готовое решение нужно, хочу разобраться" я скорее подразумевал, что можно и готовое решение, но если оно в виде скрипта, команд и тд, то в коде могли бы присутствовать коды с ID устройств или идентификаторы команд, которые могут меняться в зависимости от компа. И разобраться хотел чтобы понимать где брать эти ID на случай необходимости подправить код под другой комп

На скринах ошибок нет, по идее, должно работать.

Проблема в том, что Microsoft не предоставляет доступ к API. Именно поэтому, приходиться действовать через костыли (.NET + WinRT), запрашивая и перечисляя активные устройства (не даром вначале запускается служба, потому как даже если служба находиться в состоянии "Вручную" — основная часть скрипта не сработает).

Лучший способ помочь себе — помогать другим.
Цитата: Яр от 20.10.2021, 19:13

На скринах ошибок нет, по идее, должно работать.

Проблема в том, что Microsoft не предоставляет доступ к API. Именно поэтому, приходиться действовать через костыли (.NET + WinRT), запрашивая и перечисляя активные устройства (не даром вначале запускается служба, потому как даже если служба находиться в состоянии "Вручную" — основная часть скрипта не сработает).

По идее) Но не работает. Странности заметил, что в bt off прописан stop bthserv а в bt on нету start bthserv, хотя в этом одна из сутей батника и заключается, сначала включить сервис, потом пытаться включить блютуз)

В Инете наткнулся на эту статью из которой вроде как понимается что API для управления радиомодулями открыты, там есть ссылка на примеры и ссылка на майкрософт Windows.Device.Radios Namespace но там для меня уже инопланетный язык и ничего не пойму)). Есть тут кодеры? Христ наверное занят

Цитата: Эльдар от 20.10.2021, 21:17

По идее) Но не работает. Странности заметил, что в bt off прописан stop bthserv а в bt on нету start bthserv, хотя в этом одна из сутей батника и заключается, сначала включить сервис, потом пытаться включить блютуз)

...

Включение службы заложено в сам ps-скрипт.

В Инете наткнулся на эту статью ...

Вот, кстати, у UWP приложений есть доступ к API, забыл упомянуть.

Лучший способ помочь себе — помогать другим.
Цитата: Яр от 20.10.2021, 21:20
Цитата: Эльдар от 20.10.2021, 21:17

По идее) Но не работает. Странности заметил, что в bt off прописан stop bthserv а в bt on нету start bthserv, хотя в этом одна из сутей батника и заключается, сначала включить сервис, потом пытаться включить блютуз)

...

Включение службы заложено в сам ps-скрипт.

В Инете наткнулся на эту статью ...

Вот, кстати, у UWP приложений есть доступ к API, забыл упомянуть.

Суть в том, что остановка и запуск сервиса bthserv у меня никак не влияла на переключение кнопки и она у меня переключалась во вкл и выкл независимо от статуса сервиса🤷🏻‍♂️ и даже другие службы (у меня rtkbt_чё-то там и bluetooth audio_че-то там) тоже в выключенном состоянии не влияли на кнопку и она все равно включалась

Всем привет 🖐
Начнём с того, что Bluetooth-устройство когда-то уже было сопряжено и постоянно его удалять не нужно.
Другой вопрос, что оно само не Подключается кнопкой Подключить, и чтобы это исправить делаем следующее:

  1. Идём в СкопированоПараметры ➜ СкопированоУстройства и запоминаем имя устройства (пример)
  2. Создаём папку в любом удобном месте и называем её, например, СкопированоВключить уши
  3. Кладём в эту папку 2 файла btcom.exe и connect.vbs
  4. Открываем connect.vbs в любом текстовом редакторе и меняем СкопированоGalaxy Buds2 (^.^) на имя, которое запомнили
    Кавычки не удаляем, меняем именно имя (скриншот)
  5. Делаем двойной клик по connect.vbs и уши Подключатся
    Так быстро, как это позволит ваша пара Bluetooth

vbs

' Команда ниже Подключает наушники и на них идёт звук
WScript.CreateObject("WScript.Shell").Run "cmd /c btcom -n ""Galaxy Buds2 (^.^)"" -c -s110b", 0, true

' Команда ниже Отключает звук с наушников
WScript.CreateObject("WScript.Shell").Run "cmd /c btcom -n ""Galaxy Buds2 (^.^)"" -r -s110b", 0, true

''''''''''''''

' Команда ниже Подключает наушники и включает микрофон на них
WScript.CreateObject("WScript.Shell").Run "cmd /c btcom -n ""Galaxy Buds2 (^.^)"" -c -s111e", 0, true

' Команда ниже отключает микрофон с наушников
WScript.CreateObject("WScript.Shell").Run "cmd /c btcom -n ""Galaxy Buds2 (^.^)"" -r -s111e", 0, true

Лайкнули Сергей, Mikhail и ещё 8
СергейMikhailIvan_00SKANDALISTВалерийВладиславFen1maPsydiantСергейSergei
В любой непонятной ситуации переходи на beta  © Win 10 Tweaker

Извините, но кажется не работают ссылки для скачивания файлов, можно обновить?

Лайкнул SPRAY
SPRAY
Страница 1 из 2►