Глобальные горячие клавиши для WindowsFormApplications - PullRequest
0 голосов
/ 04 декабря 2010

Как я могу выполнить функцию, когда пользователь нажимает определенную кнопку?Например, когда я хочу посчитать, сколько раз пользователь нажмет кнопку «A» во время записи (или комбинацию Ctrl + C).
Мое приложение должно работать в фоновом режиме.

Ответы [ 2 ]

0 голосов
/ 23 мая 2011

Я нашел это решение, которое отлично работает на Windows.Вам не нужно устанавливать какое-либо программное обеспечение, такое как JIntelliType.Обратите внимание, что это 32-битная DLL, и вы можете перекомпилировать для 64-битной JVM, если хотите.Все кредиты оригинальному автору блога.

0 голосов
/ 04 декабря 2010

Я думаю, что нет никакого «легального» способа сделать это, потому что вы можете слушать события, происходящие в вашем окне, а не снаружи. Я был бы рад узнать, что я неправ, и есть «правильный» способ сделать это.

Я могу предложить вам хитрость (обходной путь). Создать прозрачное полноэкранное окно. Пользователь не видит его, но вы можете отследить все события, происходящие в его пределах. Каждый раз, когда вы ловите событие клавиатуры, сделайте следующее: 1. запомнить событие 2. закройте окно 3. Используйте класс Robot для воспроизведения события. 4. Восстановите прозрачное окно снова.

Я считаю, что компьютеры достаточно быстры, чтобы делать все это настолько быстро, что пользователи ничего не видят.

...