Клуб Punto Switcher

искуственное поднятие средней клавиши мыши

6 октября 2011, 22:43

Все привет!

Обнаружил, что при переключении введенного текста (как в авто режиме так и принудительно по клавише) пунто посылает системе искуственное поднятие средней клавиши мыши (виртуальная клавиша 04, сканкод 000). Можно увидеть, например в автохоткей спае.

Это баг или фича?

Очень мешает, так как, например, некоторые скрипты автохоткей работают некоректно.

Макс.

12 комментариев

Вот как это выглядит в логах автохоткея при наборе "мама" в английской раскладке.

http://img-fotki.yandex.ru/get/5411/77752287.0/0_5ff86_e7be812d_orig

Т.е. перед переводом на кирилицу и после этого, системе посылается поднятие средней клавиши мыши

Это часть сложного алгоритма. А какие это создает проблемы, приведите пример пожалуйста.

Ну проблемы же очевидны, ведь опер. система получает событие пользовательского интерфейса, которого на самом деле не было.

Если конкретно, программы, которые в зависимотсти от движений мышки и нажатий-отпусканий клавиш производят определенные действия с окнами, работают некорректно. Например, набираю в редакторе текст и тут (когда делаю переключение языка) окно редактора минимизируется или начинает "плясать".

Это первый репорт такого рода. Поподробнее, пожалуйста, для того чтобы можно было воспроизвести.

Репорт может быть и первый, но проблема это уже очень давно существует, по крайней мере со вторых версий пунто точно.

Разве не очевидно то, что посылать системе действия пользователя (оборудования) которого не было на самом деле (и которое вполне может повлиять на реакцию системы) неправильно?

Хотите воспроизвести, пожалуйста:

Вот скрипт (autohotkey.com), который закрывает активное окно при отпускании средней клавиши мыши:

#InstallKeybdHook
#InstallMouseHook
MButton Up::WinClose A

теперь откройте explorer и в адресной строке напишите что-нибудь, чтобы среагировал пунто .... окно закроется

Punto так работает, послает действия которых не было :)  Благодаря этому происходит конвертация.

Хочу спросить участников клуба. У кого-нибудь есть с этим проблемы?

Да, только это те действия, кторые пользователь ожидает от пунто.

А вот зачем пользователю (и конвертации), чтобы пунто за него кнопки мышек отпускал.... Загадка...

И потом, зачем спрашивать про проблемы, если вам указали на то, что программа работает не совсем корректно и вы с этим согласились? Объясните просто, что это за часть алгоритма такая необходимая (мне вот именно это непонятно, причем тут вообще мышь???) и почему это нельзя исправить.

Просто объяснить 6МБ исходников не получится :)

Давайте 6мб. Сам разберусь :)

Только сначала нужно приехать в Московский офис Яндекс и подписать «Договор о не разглашении» B-)

Ок. Жду форму для ознакомления, готов подписать. Только это не договором должно называться. ;)

PS. Лучше бы ответили, будете ли менять алгоритм на более корректный или нет, тогда обходное решение буду искать сам.