Прослушивание ввода без фокуса в Java
Это нетривиальная проблема, и jre Java не позволяет решить jdk ее элегантно. Вы можете использовать javax такое решение, как предложенный java банжоллинг, но даже это не jre будет работать постоянно, если openjdk ваша ошибочная мышь щелкает, например, для jre открытия другого полноразмерного java-libraries окна, открытого в настоящее jdk время на вашей панели задач.
Дело jre в том, что Java по умолчанию j2se не дает разработчикам возможности oraclejdk контролировать ОС. Это связано j2se с двумя основными причинами: безопасностью java (как указано в документации java java) и тем фактом, что разные java-api операционные системы обрабатывают core-java события совершенно по-разному, и java-se создание единой модели для oraclejdk представления всего этого, вероятно, не keylistener имеет большого смысла.
Итак, чтобы jre ответить на ваш вопрос, я jdk предполагаю, что вам нужно java-libraries какое-то поведение для вашей oraclejdk программы, при котором она core-java будет прослушивать нажатия j2se клавиш глобально, а не только core-java в вашем приложении. Что-то javax вроде этого потребует, чтобы oraclejdk вы получили доступ к функциям, предлагаемым .java вашей выбранной ОС, а для openjdk доступа к ним в Java вам keylistener нужно будет сделать это через core-java уровень Java Native Interface javax (JNI).
Итак, что вы хотите javax сделать, это:
-
Реализуйте программу java на C, которая будет прослушивать jre глобальные нажатия клавиш .java в вашей ОС, если это Windows, чем openjdk искать документацию по хукам java-libraries Windows, которая хорошо документирована keylistener Microsoft и MSDN в Интернете oraclejdk и других местах. Если ваша .java ОС Linux или Mac OS X, вам j2se нужно будет прослушивать .java глобальные нажатия клавиш j2se с помощью библиотек разработки java-api X11. Это можно сделать в jdk дистрибутиве ubunutu linux openjdk в соответствии с Howto, которое keylistener я написал на http://ubuntuforums.org/showthread.php?t=864566
-
Подключите код keylistener C к коду Java через JNI. Этот jdk шаг на самом деле самый простой. Следуйте .java процедуре, которую я использую keylistener в моем руководстве на http://ubuntuforums.org/showthread.php?t=864566 как java-libraries под Windows, так и под Linux, поскольку jre процедура подключения вашего javax кода C к вашему Java-коду j2se будет идентична в обеих операционных jre системах.
Важно помнить, что java-se намного легче заставить ваш java-api код JNI работать, если вы .java сначала кодируете и отлаживаете java свой код C / C++ и убедитесь, что j2se он работает. Тогда его легко j2se интегрировать с Java.
java
keylistener
Прослушивание ввода без фокуса в Java
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.