Перезапуск usb пристрою після режиму «сон»

Перезапуск usb пристрою після режиму «сон»

Я володар одного цікавого девайса - програмованої клавіатури Logitech G13. Клавіатура фантастична, особливо для програміста - можна запрограмувати купу додаткових кнопок на певні дії. Однак з нею є невелика проблема - після переведення ПК в режим "Сон" і повернення з нього, вона "втрачає настройки", а програма керуюча їй не звертає на це увагу, допомагає відключення і підключення її до ПК. До недавнього часу я використовував для цього подовжувач, однак тепер все змінилося ..

Треба зауважити, що даний спосіб абсолютно не прив'язаний до девайсу, тому ви можете використовувати його і для інших пристроїв, у яких схожа проблема ..

Перш за все треба розбити задачу на кілька частин:

  1. Відключення і включення пристрою на певному порту USB
  2. Написати скрипт який буде робити перезапуск
  3. Виконувати скрипт відразу після виходу зі сну

Поїхали за списком ..

Відключення і включення пристрою на певному порту USB

Ця програма вміє відключати і включати USB пристрої, простим клацанням мишки:

Перезапуск usb пристрою після режиму «сон»

USBDeview - програма для уравленія USB портами

Таким чином, я зміг відключати і підключати свою клавіатурку, що в свою чергу призводило до завантаження профілів і нормальній роботі. Тепер нам потрібно це оформити у вигляді скрипта ..

Пишемо скрипт який буде робити перезапуск

Програма USBDeview добре продумана і має можливість управління пристроями з консолі, тому і з цим пунктом проблем не виникло. У мене вийшов такий bat скриптик:

Величезне спасибі що допомогли. Треба ще вкінці статті додати, що відкривається програма повинна в самих властивості запускатся з правами адміністратора (в пункті сумісність з ОС), інакше всі зусилля по автозавантаженні з під режиму сну марні. До того-ж саму програму найкраще помістити в корені диска з системою, а не на робочому столі або десь ще незрозуміло де, BAT команда може запутатся в папках ні з латинськими значеннями слів.

Є супутниковий модем, разів зо два три в день відрубується інтернет. Як зробити, щоб при втрати зв'язку з инетом, модем автоматично перезавантажувався?

Якщо такої функції немає в настройках модему, тоді це буде складно зробити:
1) Якщо це стаціонарний пристрій, то тільки через внутрішні настройки; або установка кастомной прошивки, і знову ж таки внутрішні налаштування
2) Якщо цей пристрій живиться від USB, тоді можеш спробувати те, що описано в статті, в ручному режимі. Якщо спрацює, тоді тобі треба написати скрипт, який буде робити наступне:
- раз в 1-5 хвилин, пінг стабільного сервера, наприклад dns гугла: 8.8.8.8, 8.8.4.4
- якщо пінг не проходить, значить інет здох і треба перезавантажувати, зробити це можна знову ж за допомогою інформації зі статті.
Якщо сам не можеш написати такий скрипт, звернися на фріланс, там допоможуть за невелику винагороду.

Наскільки я зрозумів, тобі треба зробити наступне:
1) Вирубати модеми
2) Включати їх з інтервалом в 15 хвилин

Тоді тобі треба зробити наступне:
1) Читаєш в статті і шукаєш id всіх модемів, тобто ти повинен знайти 4е значення типу: "046d; c21"
2) тести, що реально відключається, включається і все працює. Команди написані вище:
start D: \ Soft \ System \ USB \ usbdeview-x64 \ USBDeview.exe / disable_by_pid "046d; c21c"
start D: \ Soft \ System \ USB \ usbdeview-x64 \ USBDeview.exe / enable_by_pid "046d; c21c"
3) Пишеш батник, типу того:

@echo off
start D: \ Soft \ System \ USB \ usbdeview-x64 \ USBDeview.exe / disable_by_pid "046d; c21c"
start D: \ Soft \ System \ USB \ usbdeview-x64 \ USBDeview.exe / disable_by_pid "046d; c22c"
start D: \ Soft \ System \ USB \ usbdeview-x64 \ USBDeview.exe / disable_by_pid "046d; c23c"
start D: \ Soft \ System \ USB \ usbdeview-x64 \ USBDeview.exe / disable_by_pid "046d; c24c"
timeout / t 900 / nobreak> nul
start D: \ Soft \ System \ USB \ usbdeview-x64 \ USBDeview.exe / enable_by_pid "046d; c21c"
timeout / t 900 / nobreak> nul
start D: \ Soft \ System \ USB \ usbdeview-x64 \ USBDeview.exe / enable_by_pid "046d; c22c"
timeout / t 900 / nobreak> nul
start D: \ Soft \ System \ USB \ usbdeview-x64 \ USBDeview.exe / enable_by_pid "046d; c23c"
timeout / t 900 / nobreak> nul
start D: \ Soft \ System \ USB \ usbdeview-x64 \ USBDeview.exe / enable_by_pid "046d; c24c"
Тут 900 = 15 хв = 15 * 60 = 900 сек

4) тестіруешь батник, можеш поставити там часом не 900, а наприклад 60, щоб довго не чекати.

Мабуть не всі модеми відключаються при відключенні порту. Мій ZTE MF667 в мережі навіть якщо комп вимкнути. У мене було завдання. автовключение компа в певний час. Автопідключення до інету. автоскачіваніе файлу. І ще модем потрібно перепідключити. Навіщо мені це треба. Ось навіщо. "Облік трафіку не ведеться в період з 1:00 ночі до 8:00 ранку." Так що хотілося все налаштувати. леч спати. а вранці виявити що все Скочиляс без моєї участі) Можна звичайно було зробити простіше. просто включивши закачування в потрібний час. але так не котить. бо треба розривати з'єднання в самому модемі і о першій годині ночі.


timeout / t 3
c: \ reload \ devcon.exe enable PCI \ VEN_8086DEV_3B34CC_0C0320
)

"PCI \ VEN_8086DEV_3B34CC_0C0320" цю частину помітити на ВД вашого пристрою. або USB-Хоста. в якому цей пристрій є.

Спочатку батник перевіряв пінг до декількох сайтів. якщо помилки. то батник перепідключатися USB-пристрій. Я прибрав зайве (може ще можна що прибрати. Не особливо розбираюся) і він працює як мені потрібно. Єдина проблема це робота проги "Q-Share". вона не дає моєму інету працювати) Але коли я перебирав USB порти і вставляв в батник їх ВД. знайшлося щось цікаве. Батник вимикав цілу групу USB-пристроїв і прога "Q-Share" падала з помилкою. і + інет відновлювався)
Залишилося тільки поставити "Q-Share" в автозавантаження. а батник відкладену автозагрузку :)

У підсумку ось що вийде. Комп включається о 01:02 (налаштоване в биосе). автоматом завантажується програма для скачування файлу (і вона автоматом викачує якщо є інет). завантажується "Q-Share" і збиває модем з пантелику. потім запускається мій батник і відключає USB-пристрої (може навіть все). від цього "Q-Share" падає з помилкою. потім батник включає пристрої. модем заново підключається до мережі і як тільки в компі з'являється інет відразу йде завантаження файлів.
Ще можна налаштувати що б комп потім вимкнувся.

Может кому пригодится :)

Ось що нарив про "Q-Share". це прога від компанії GIGABYTE. Поставляється з софтом для мат. плати. Короткий опис "Утиліта Q-Share дозволяє налаштовувати і управляти розділяються мережевими ресурсами".
Я так і не в'їхав як вона працює. але дізнався що не тільки мені "геть відключає інтернет"))

а як зробити так що б модем yota перезавантажувався з определнного часом що б я кожного разу не виасківал модем з USB порту

Точно так же, як описано в статті: знайти pid, створити bat файл для запуску USBDeview.exe, за розкладом Windows на вкладці "Тригери" вибрати необхідний інтервал часу.