Чем кончилась борьба с подключением к Интернету через bluetooth...
Usb-bluetooth адаптер Jabra с родными widcomm'овскими дровами.
После выхода из сна иногда (далеко не всегда) возникала ситуация, что всё работает, но rasdial не может подключиться к Интернету. Помогает либо ручная операция физически вынуть-вставить сам донгл в комп, либо перезагрузка компа.
Ни то, ни другое меня не устраивало (донгл вообще глубоко закопан в подлокотник), хотелось полного автоматизма и без каких-либо перезагрузок компа (из сна комп просыпается намного быстрее обычной загрузки).
Пробовал отключать/включать устройство при помощи
devcon'а, идущего в комплекте RR, - не помогло. Пытался отключать/включать устройство при помощи
SafelyRemove, - вроде б иногда помогало, но не всегда. Игры с rasdial'ом вообще мимо кассы, - максимум, что добивался, так это исчезновения ярлыка bluetooth-подключения вообще (до перезагрузки).
Когда в очередной раз после выхода из сна rasdial отказался подключаться к Интернету, я стал искать какими манипуляциями всё ж можно добиться восстановления работы rasdial'а... И нашел, что если кликнуть правой кнопкой в трее по иконке bttray.exe (значек блютуса) и в появившемся меню выбрать самый нижний пункт - отключение блютуса, а потом через несколько секунд провести все те же действия и через нижний пункт меню включить блютус, то rasdial снова начинает весело подключаться к Интернету!
Осталось дело за малым - автоматизировать этот процесс
Подключением и отключением от Интернета у меня занимается
мой обслуживающий ahk-скрипт, поэтому и решение искать я стал в рамках
autohotkey'я. Подробно метод выяснения какую команду надо послать в окно (в том числе и скрытое)
описан здесь.
В случае с жаброй всё свелось к двум командам с паузами (в случае нескольких неудачных попыток подключиться к Интернету):
PostMessage, 0x111, 7049,,, ahk_class AfxWnd42 ; bluetooth off
Sleep, 4000 ; ждем примерно 4 секунды
PostMessage, 0x111, 7048,,, ahk_class AfxWnd42 ; bluetooth on
Sleep, 8000 ; ждём примерно 8 секунд
Всё! Тырнет уже месяц есть всегда без перезагрузки!
P.S. Скрипт еще немного доработал - теперь показывается не только возраст пробочного файла в минутах, но и название карты, для которого этот пробочный файл скачан.
