понедельник, 20 февраля 2017 г.

Решение проблемы "Serial Mouse"

После модификации протокола обмена с биттваровской платой по ее UART, хрюша стала видеть поток данных как Standard Serial Mouse и переопределила текущий последовательный COM-порт своим драйвером msmouse.sys. В итоге порт оказывался недоступен для последующей работы уже нашего промышленного ПО. Гугление показало, что проблема в принципе не нова, хотя и работа велась на 115200/8n1, а не на стандартной для Microsoft serial mouse скорости 1200 bps и уж точно не тремя байтами. Поскольку инсталлятор ПО отдается на сторону, хотелось автоматизировать фикс сего бага, что привело к написанию небольшого батничка, осуществляющего следующие операции: лезем в реестр к субклассу sermouse и меням значение ключа Start, находим системный диск и снимаем аттрибут "только для чтения" с boot.ini, дописываем в его последнюю строку ключик "/NoSerialMice".

Содержимое фикса:
@echo off
reg.exe ADD HKLM\SYSTEM\CurrentControlSet\Services\sermouse /v Start /t REG_DWORD /d 4 /f
attrib -r "%SYSTEMDRIVE%\boot.ini"
Echo  /NoSerialMice>>"%SYSTEMDRIVE%\boot.ini"

Комментариев нет:

Отправить комментарий

В комментариях уважайте собеседника, внимательно читайте посты и не додумывайте. Просьбы и предложения из разряда: «можно ваш Skype/Viber/телефон», «напишите мне в vk/FB», а также другие им подобные — игнорируются. Выход новых версий ПО, внешняя ссылка, переставшая работать с течением времени и т.п. не является основанием для претензий. Желающие спокойно подискутировать и высказаться — Welcome. Желающие спонсировать блог — Donate. Нарушение этих простых правил ведет к бану и удалению комментариев без предупреждения.