[Homeros] Q: Ещё раз горячие клавиши в Windows

Nikita nikita-mailings на rambler.ru
Чт Сен 24 23:01:04 MSK 2015


Здравствуйте, Michael Pozhidaev.

> Самый главный минус этого подхода
> -привязка к интерфейсу конкретной библиотеки, а она будет оставаться
> одинаковой между разными версиями Windows?

Ну если ты про часть, привязанную к Win API, то, думаю, там всё достаточно 
стабильно. В Microsoft не очень любят ломать API. У них с девяностых готов 
куча API тянутся.

> JNI - это, вообще говоря,
> зло, просто временами необходимое.

Ну да, только это называется одним словом - компромисс. :-)
Компромисс технологический, а для пользователей это как раз то, что снимает 
головную боль и им плевать, как разработчик этого добился.

> ждут ли потенциальные пользователи от Luwrain такого поведения, которое
> будет заменять базовые кнопки Windows.

Я думаю, что пользователи такими категориями в массе своей вообще не 
оперируют. Они ждут удобства использования, а доступ в меню Luwrain одной 
кнопкой представляется проще, чем комбинацией из двух кнопок.
Более того, раз уж Luwrain - это целая рабочая среда, то повышенный контроль 
за сохранением фокуса в ней даже в тему.
Например, тот же самый Dolphin Guide также перехватывает не просто нажатие 
Windows, но даже и попытки выхода в другое окно, возвращая себя на передний 
план.
То есть из среды случайно не вывалиться, а внутри неё может быть 
нестандартные реакции на стандартные клавиши. Мне кажется, это вполне в 
логике отдельной песочницы для работы.

> И этот метод ещё порождает
сомнения на тему, кнопку-то ты поймаешь, а вот насколько это запретит её
> поймать Windows?

Я не думаю, что кому-то нужен перехват клавиатурных событий без блокирования 
исходной привязки, так что у меня даже мысли такой нет.
Раз человек собирал на этом готовые продукты, то вряд ли у него были 
проблемы такого рода, потому что в противном случае все его разработки можно 
было бы выбрасывать.
Перехват в том числе и системных кнопок Windows - это регулярная практика. 
Например, экранные чтецы это постоянно делают. Эта библиотека просто open 
source Java-реализация, которую мне удалось найти.
Плюс она должна пригодится и на Linux, и на OS X, где аналогичные проблемы 
тоже возникают.
Мне кажется, имеет смысл на всё это посмотреть и в итоге попробовать сделать 
возможность перехвата любой клавиши на любой системе, чтобы было меньше 
фрагментации по платформам.
Единственно я не уверен, что всё это хозяйство способно ещё и различать 
парные клавиши, типа RightAlt и LeftAlt, но тут надо уже смотреть и 
пробовать. Вообще же я не сторонник разных функций для зеркальных клавиш.
Успехов. Никита. 



Подробная информация о списке рассылки Homeros