Столкнулся с такой проблемой. Как отследить нажатие клавиши в фоне. Знаю, что можно как-то сделать через JNI, JNA, Winapi. Хотел бы увидеть примеры, как отслеживать нажатие определенной клавиши, когда программа свернута. Спасибо
Есть библиотека jnativehook.
Вот зависимость мавен:
<dependency>
<groupId>com.1stleg</groupId>
<artifactId>jnativehook</artifactId>
<version>2.0.2</version>
</dependency>
А здесь примеры использования от разработчика. Процитирую код от туда касаемый перехвата событий с клавиатуры:
Global Keyboard Listener
import org.jnativehook.GlobalScreen;
import org.jnativehook.NativeHookException;
import org.jnativehook.keyboard.NativeKeyEvent;
import org.jnativehook.keyboard.NativeKeyListener;
public class GlobalKeyListenerExample implements NativeKeyListener {
public void nativeKeyPressed(NativeKeyEvent e) {
System.out.println("Key Pressed: " + NativeKeyEvent.getKeyText(e.getKeyCode()));
if (e.getKeyCode() == NativeKeyEvent.VC_ESCAPE) {
GlobalScreen.unregisterNativeHook();
}
}
public void nativeKeyReleased(NativeKeyEvent e) {
System.out.println("Key Released: " + NativeKeyEvent.getKeyText(e.getKeyCode()));
}
public void nativeKeyTyped(NativeKeyEvent e) {
System.out.println("Key Typed: " + e.getKeyText(e.getKeyCode()));
}
public static void main(String[] args) {
try {
GlobalScreen.registerNativeHook();
}
catch (NativeHookException ex) {
System.err.println("There was a problem registering the native hook.");
System.err.println(ex.getMessage());
System.exit(1);
}
GlobalScreen.addNativeKeyListener(new GlobalKeyListenerExample());
}
}
Кроме событий клавиатуры, библиотека умеет отрабатывать события мыши.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Хочу стать Android-разработчикомЧто нужно знать для этого? Сейчас учу java SE
Доброго времени сутокСуществует необходимость отсылать push-уведомления от устройства к самому себе