Я володар одного цікавого девайса - програмованої клавіатури Logitech G13. Клавіатура фантастична, особливо для програміста - можна запрограмувати купу додаткових кнопок на певні дії. Однак з нею є невелика проблема - після переведення ПК в режим "Сон" і повернення з нього, вона "втрачає настройки", а програма керуюча їй не звертає на це увагу, допомагає відключення і підключення її до ПК. До недавнього часу я використовував для цього подовжувач, однак тепер все змінилося ..
Треба зауважити, що даний спосіб абсолютно не прив'язаний до девайсу, тому ви можете використовувати його і для інших пристроїв, у яких схожа проблема ..
Перш за все треба розбити задачу на кілька частин:
- Відключення і включення пристрою на певному порту 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 на вкладці "Тригери" вибрати необхідний інтервал часу.