Перехват / отключение системных ключей в Java - PullRequest
2 голосов
/ 04 августа 2010

Есть ли способ перехватить системные ключи в Java, чтобы события не распространялись на операционную систему?Ctrl + Alt + Del или другие комбинации, связанные с безопасностью, не имеют значения, основной проблемой является, например, клавиша Windows.

Рассматриваемая программа предназначена для полноэкранного приложения, которое выполняет некоторые удаленные операции через собственный протокол.,В настоящее время моей единственной идеей было бы решить эту проблему с помощью JNI, в то время как решение для Windows кажется простым, я не уверен насчет Linux и MAC OS X.

Я бы предпочел несколько стандартное решение, может бытьесть что-то для игр Java или около того.

Ответы [ 2 ]

1 голос
/ 04 августа 2010

Java обрабатывает нажатия клавиш после операционной системы (ОС), поэтому Java не может «перехватить» их.Хотя вы могли бы кодировать специфические для ОС вещи на C / C ++, которые перехватывали нажатия клавиш, и вызывать их на Java с помощью JNI.

0 голосов
/ 04 августа 2010

Похоже, исправлено в Java 5 , так что вы можете попробовать его. По-видимому, класс KeyEvent в Java API предоставляет два специфических события клавиатуры Microsoft Windows - VK_WINDOWS (для левой и правой клавиши) и VK_CONTEXT_MENU (для клавиши контекстного меню).

Вполне возможно отследить эти события с помощью реализации KeyListener, но имейте в виду, что если вы попытаетесь захватить только событие Winkey, вы должны сначала отключить обработчик событий ОС, прежде чем Java сможет его обработать.

...