我正在尝试使用JNativeHook库为我的Java应用程序提供全局键盘和鼠标侦听器.我从https://github.com/kwhat/jnativehook下载了源文件,但我不知道如何将它安装到eclipse并使用它.我还查看了编译说明:https://github.com/kwhat/jnativehook/wiki/Compiling 我遵循了所有步骤,但它似乎让我感到困惑.所以任何人都可以指导我如何使用JNativeHook库.我使用Eclipse作为IDE,使用Windows 7作为操作系统.
我正在做一个程序,用JAVA计算 Windows、Mac 和 Linux 上的键盘鼠标移动性。我正在使用JNativeHook来获取键盘和鼠标移动。它在 Windows 和 Linux 中运行良好,但在 MacOS 上运行 10-15 分钟后,电脑死机,我必须重新启动计算机。
我试过注销 JnativeHook ( GlobalScreen.unregisterNativeHook();
) 并GlobalScreen.registerNativeHook();
每 10 秒重新注册一次 ( )。现在我每 2-3 天就会遇到一次问题。10 分钟到 2-3 天,但这不是确切的解决方案。
这不是我最新的代码,但问题是基本代码 https://github.com/erYunusTR/MouseKeyboardListener
当您将应用程序作为.app(MacOS App) 运行时会出现此问题,当您将其作为jar 或在ide 上运行时不会出现此问题
你以前有过这样的 Mac 用户吗?或者你有什么建议?
为屏幕投射开发一个基本的、开源的键盘和鼠标屏幕显示桌面应用程序,称为KmCaster:
该应用程序使用JNativeHook库来接收全局键盘和鼠标事件,因为 Swing 的键和鼠标侦听器仅限于接收针对应用程序本身的事件。
当应用程序失去焦点时,用户界面会显示间歇性按键,而不是每次按键。然而控制台显示应用程序已收到每次按键。
一个简短的、自包含的、可编译的示例:
import org.jnativehook.GlobalScreen;
import org.jnativehook.NativeHookException;
import org.jnativehook.keyboard.NativeKeyEvent;
import org.jnativehook.keyboard.NativeKeyListener;
import javax.swing.*;
import static java.util.logging.Level.OFF;
import static java.util.logging.Logger.getLogger;
import static javax.swing.SwingUtilities.invokeLater;
import static org.jnativehook.GlobalScreen.*;
import static org.jnativehook.keyboard.NativeKeyEvent.getKeyText;
public class Harness extends JFrame implements NativeKeyListener {
private final JLabel mLabel = new JLabel( "Hello, world" );
private int mCount;
public void init() {
getContentPane().add( mLabel );
setDefaultCloseOperation( EXIT_ON_CLOSE );
setLocationRelativeTo( null );
setAlwaysOnTop( true );
pack(); …
Run Code Online (Sandbox Code Playgroud) 我尝试使用 java 库https://github.com/kwhat/jnativehook将新的本机按键发布到系统。方法
GlobalScreen.postNativeEvent();
Run Code Online (Sandbox Code Playgroud)
需要传递一个 NativeInputEvent 对象,该对象需要参数
根据文档,我无法弄清楚所需的参数是什么以及如何初始化新的 GlobalScreen 对象。(https://github.com/kwhat/jnativehook/blob/master/src/java/org/jnativehook/NativeInputEvent.java)
感谢您提前的答复!