В ОС по умолчанию задана работа с 1 указателем мыши. Даже если подключите 2 и более устройств (тачпады, мыши, трекболы), все они в лучшем случае будут двигать один указатель. С этим все свыклись, как с аксиомой, и даже на ресурсах типа ответы.mail.ru есть авторитетные ответы, утверждённые модератором как закрытые, что сделать 2 указателя нельзя (кто имеет туда доступ — поправьте недоразумение). Когда-то было известно коммерческое решение «2 рабочих места за 1 системным блоком» (EasyCLone) — возможность создать на компьютере рабочие столы на 2-4 разных комплектах «дисплей-мышь-клавиатура», и это было даже выгоднее, чем покупать 2 ПК для фирм, но стремительное удешевление комплектующих, видимо, быстро обесценивало такое решение и о нём забыли. Но недавний топик на малоизвестном ответвлении Хабра неожиданно для многих пролил свет на эту зыбкую истину. Оказалось, что есть программа, которая на уровне драйверов ловит каждую новую подключенную мышь и создаёт для неё новый указатель. Увы, у неё триальный период 15 дней, что тут же испарило желание её включить. Зачем, если стоит задача попробовать неотработанную, неизвестную, но интересную технологию? Есть поиск, интернет и общественная потребность у задачи, а значит, есть возможность найти более гибкие решения. В данном решении речь не идёт о 2 фокусах ввода в системе. Если мышью переключаются на другое окно или место в окне, то фокус передаётся этой мыши, и курсор ввода с клавиатуры перемещается на это место тоже. Если бы в ОС создавались 2 фокуса ввода, то эта задача называлась бы «2 мыши + 2 клавиатуры», и решение было бы ещё удобнее. Но с точки зрения системы она заметно сложнее — ведь надо иметь не только драйвер мыши, но и множественные активные окна на рабочем столе. 2 указателя мыши могли бы пригодиться для совместной почти одновременной работы на 1 рабочем столе (Desktop). Например, программа по ссылке выше, Peanut Butter Pointer, позиционируется для работы взрослого и ребёнка (совместная работа в обучающих программах). Поиск показал, что, действительно, верен очередной афоризм, вынесенный в эпиграф. Есть бесплатная программа для Windows (апрель 2004, 2K/XP) с открытым кодом и есть инструкции для Linux, Debian, X.Org 7.5, 19.01.2010 по подключению нужного количества мышей + указателей к ним.
(Замечание для Linux, цитата: «В настоящее время MPX не поддерживается в Gtk+ и соответственно не получится рисовать одновременно двумя мышами в GIMP или Inkscape, но можно одной мышью выбирать инструменты или элементы меню, а другой рисовать. Ситуация изменится с выходом Gtk+ 3. Также перетаскивание одновременно двух окон еще не работает в оконном менеджере Metacity, но иконки перетаскивать одновременно в Nautilus с перемещением окна в Metacity уже можно. Qt поддерживает мультитач начиная с версии 4.6.»)
Остановимся подробнее на решении для Windows XP. Это «голый» драйвер без инсталлятора. Чтобы его подключить, нужно сделать некоторые действия по инструкции. (На английском — cpnmouse.sourceforge.net/install.html .) Поэтому инструкция ниже — для исследователей, а не для простых потребителей конечного продукта. Две мыши стоит установить хотя бы для того, чтобы посмотреть, как это работает и прикоснуться к «нижним горизонтам» управления устройствами на уровне инсталляции драйверов. Ну а пересказ с переводом и некоторыми иллюстрациями подтвердит уверенность, что цель близка и достижима, нужно лишь «знать, как».
Инсталляция драйверов для 2 и более мышей.
1. Все устройства типа мыши должны быть подключены и работать (двигать указатель).2. Из-под администратора кладём имеющиеся 2 файла *.inf и *.sys в папки windowsinf и windowssystem32.3. Выбираем «Панель управления -> Система -> Оборудование -> Диспетчер устройств«.4. Далее «Mice and other pointing devices», в этой папке видим работающие мышиные устройства. Драйвер не накладывает ограничений на тип мышей (COM, PS/2, USB). Но он потребует прописывания некоторых данных из свойств устройства в файл cpnmouse.inf.5. При подключении второй мыши к USB она определяется как «HID-compilant mouse». Для дальнейшей инсталляции с большой вероятностью будет необходимо знание Кода оборудования. Автор драйверов рекомендует получить их с помощью некоторой излишне мощной программы по чтению данных с оборудования, но всё необходимое видно в свойствах мыши. Смотрим:Свойства HID-compilant mouse -> Сведения -> Коды (ID) оборудования -> Строчка (обычно 2-я) вида
HIDVid_XXXX&Pid_XXXX
. Например, в случае мыши MediaTech MT1068T «Crabby» она была
HIDVid_15d9&Pid_0a4c
. Если этого кода нет в файле cpnmouse.inf в строчках вида (в секции [CPNGroup.Mfg])<font> %CPNGroup.DeviceDesc1% = usbinst, HIDVid_XXXX&Pid_XXXX</font> ,
её необходимо внести в конец списка таких строчек. Для второй мыши A4Tech на порте PS/2 подобное свойство выглядело так:<font> ACPIPNP0F13 *PNP0F13</font>
По аналогии, в cpnmouse.inf есть строчка<font> %CPNGroup.DeviceDesc0% = ps2inst, *PNP0FAKE</font>
К ней тоже должна быть добавлена подобная запись сразу после неё: <font> %CPNGroup.DeviceDesc0% = ps2inst, *PNP0F13</font>
Действительно, если её не внести, требуемый драйвер с названием «CPN Tools mouse filter driver PS/2» в дальнейшем отсутствует.6. После добавлений информации делаем в Диспетчере устройств: HID-compilant mouse -> «правый клик мыши» -> Обновить драйвер… -> Установка из указанного места -> Далее -> (Убрать поиск на сменных носителях ) + Не выполнять поиск. Я сам выберу нужный драйвер -> Установить с диска -> с:windowsinf (или другой путь %system_root%) -> CPN Tools mouse filter driver USB -> Далее. Возникнет диалог «Вставьте такой-то диск в устройство ввода дисков» -> OK -> Обзор -> c:windowssystem32cpnmouse.sys -> Открыть -> ОК (будет табличка «Мастер завершил установку программ для: CPN Tools mouse filter driver USB) -> Готово. В Диспетчере устройств вместо HID-compilant mouse появится CPN Tools mouse filter driver USB.7. Повторим те же действия для мыши PS/2 с той разницей, что выбирать будем „CPN Tools mouse filter driver PS/2“. Появится приглашение на перезагрузку. Если от неё отказаться, увидим, что мышь PS/2 тоже сменилась на „CPN Tools mouse filter driver PS/2“. Подготовим компьютер к перезагрузке и выполним её. Всё бы хорошо, но указатель мыши не раздваивается…
Использование 2 мышей.
Драйвер — это только полдела. Теперь нужна программа, реализующая появление 2 (и более) курсоров. Или использование события мышей в прикладной программе на уровне API (имеется архив, описание и исходные коды) в других прикладных программах. Второй путь обречён на кустарничество — работу с 1-2-3 программами, а общие приложения могут вызвать интерес. Общее приложение, предлагаемое автором, существует одно — программа ordinary-binary-0.1.0.zip и как дополнение, cpnmouse.lib. Она создаёт 2 рисованых указателя для 2 мышей и перекидывает единственный реальный указатель к движущейся мыши, если ordinary.exe и cpnmouse.libвыложены в одной папке. Так получаем вид рабочего стола, вынесенный в заголовок: Если в папку не положить cpnmouse.lib — будем работать только с перескакивающим от мыши к мыши указателем (без стрелочек-рисунков). Это оказывается даже удобнее, потому что отображение рисуночных курсоров имеет недостаток — артефакты при перетаскивании объектов и при выделении текста, впрочем, не влияющие на функциональность прикладных программ. Такие следы, например, оставило небольшое „потаскивание“ окна программы за его заголовок. Есть пара других не менее серьёзных недостатков. Незнание программой более 1 экрана (!), что ставит крест на идее „по-лёгкому“ поработать с 2 или более мониторами. Имеет место такое „чудо“, как потеря способности прокручивать текст колесом мыши. (Как ни странно, средняя и правая кнопки работают.) Дополнительные кнопки нестандартных мышей, конечно, не будут работать (драйверы не родные). Впрочем, коды всех программ и драйверов открытые (VC++ 6), ничто не мешает их доработать. Лицензии в архивах найти не удалось, но в сети где-то проскальзывала ссылка на лицензирование этих разработок от имени университета. Что с такими драйверами можно ожидать в играх, графических редакторах? Слишком многого ожидать не следует, особенно, игры с 2 игроками. 2 мыши — это, фактически, 1 мышь, но способная мгновенно перемещаться от одной траектории к другой, выполнять поочерёдно клики в 2 далёких друг от друга участках, не носясь манипулятором по столу. Поэтому игра 2 людей с 2 мышами всегда будет (если не написаны специальные драйверы, а они не написаны) от лица одного игрока, но с мгновенным перехватом действий друг у друга. Пока что неизвестно, насколько лучше платная программа Peanut Butter Pointer, чем эта разработка. Перспектива регулярно её инсталлировать и без следов деинсталлировать через 2 недели специальным деинсталлятором сильно снижает желание её исследовать и ею пользоваться. Может быть, читатели, имеющие опыт работы с ней, расскажут и покажут её достижения подробнее.
Для удобства работы за компьютером воспользуйтесь дополнительными функциями при настройке мыши.
Настройка перехода курсора мыши с экрана на экран при использовании двух мониторов
При неправильной настройке расположения экранов курсор перемещается с одного экрана монитора на второй монитор через противоположную боковую сторону экрана. Как исправить? Открываем Панель управленияВсе элементы панели управленияЭкранРазрешение экрана
Надо поменять местами 1 и 2 экран простым перетаскиванием мыши, получаем:
Если мониторы расположены друг над другом, при вертикальном положении мониторов при неправильном перемещении курсора:
Теперь курсор перемещается правильно!
Мышь во время игры уходит на второй монитор
В этом случае поможет программа Actual Multiple Monitors скачать, в настройках горячих клавиш этой программы есть возможность запретить указателю мыши выходить за пределы монитора или за пределы окна
или использовать портативную программу Dual Display Mouse Manager скачать
при запуске DDMM курсор мыши блокируется в окне монитора, разрешение перехода на второй (или третий) монитор при нажатой клавише Ctrl. В настройках экрана можно ограничить линию перехода курсора мыши, если расположить экраны таким образом:
2 экрана, 2 клавиатуры и 2 мыши (2 независимых курсора)
ПрограммаАСТЕРпоможет запустить такую конфигурацию.
Дополнительные настройки мыши
Все знают стандартные настройки – открытие двойным кликом, выделение – одинарным. Гораздо удобнее открывать файлы одинарным щелчком, а выделять наведением курсора.
Как это сделать? Жмем кнопку “Пуск” – находим “Панель управления” – заходим в “Параметры папок” (для Win7) или “Свойства папки” (для WinXP), для Windows 10 это “Параметры Проводника”- и изменяем “Щелчки мыши” – на “Открывать одним щелчком,выделять указателем”. Всё. Жмите – Применить – ОК
Курсор мыши на кнопке по умолчанию сделает более удобной навигацию при работе, для этого в Панели управления выберите “Мышь” и на вкладке “Параметры указателя” поставьте галку “На кнопке выбираемой по умолчанию”.
Просмотреть, как выглядит эта настройка можно на примере Очистки корзины – “Вы действительно хотите удалить этот файл?” – по умолчанию подтверждается курсором на кнопке “Да”
Некоторые компьютерные вирусы блокируют окна и бывают неприятные моменты, когда открывается окно какой-нибудь программы, а кнопки управления – ОК или Отказаться и т.п., находятся вне рабочего стола ; и шапка окна не позволяет переместить окно программы вверх-вниз или вправо-влево. В этом случае поможет программа KDE Mover-Sizer 2.8 скачать (программа работает в фоне) удерживая клавишу ALT при нажатой левой кнопке мыши (ЛКМ) можно перемещать окно, при нажатой правой (ПКМ) – изменить размер окна ; курсор должен находится в любом места внутри изменяемого окна
На компьютер+2 монитора или компьютер+монитор+телевизор системах, или когда на рабочем столе открыто несколько окон добавим еще одну опцию – активировать окно при наведении на него курсора мыши.
Для этого жмем “Пуск” – Панель управления – Все программы – Стандартные – Специальные возможности – Центр спец.возможностей – находим “Облегчение работы с мышью” – и в этом окне ставим галку на пункте “Активировать окно при наведении” – Применить – ОК.
Используемые источники:
- https://habr.com/post/86023/
- https://pcholic.ru/nastrojka-myshi-dlya-udobnoj-navigacii.html