1

我想在我的 Java 应用程序中捕获 Windows 上的按键,例如 Fn+Pause、Fn+VolumeUp,但我无法检测到它们的 KeyCode。

addKeyListener(new KeyAdapter() {
        @Override
        public void keyPressed(KeyEvent e) {
            System.out.println(e.getKeyCode());
        }
    });

使用此代码段,它会为所有多媒体按键打印 0 !

请建议一种合适的方法来查找 keyCode 并在 Java 应用程序中使用它。

4

2 回答 2

3

使用JIntellitype库。

这个 API 是一个 Java JNI 库,它使用 C++ DLL 来完成与 Windows 的所有通信。这也意味着您运行的平台必须是 Windows。

如果你在 Linux 中使用JXGrabKey

在 MacOSX 中使用OSSupport

于 2013-05-11T07:49:33.277 回答
0

检查一些特殊键的KeyEvent常量。其他特殊键可能确实无法“识别”。

也请参阅线程。

于 2013-05-11T07:35:32.800 回答