Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JNativeHook来自同一操作的多个响应(鼠标单击、按键类型和鼠标滚动)_Java_Multithreading_Hook_System Calls - Fatal编程技术网

Java JNativeHook来自同一操作的多个响应(鼠标单击、按键类型和鼠标滚动)

Java JNativeHook来自同一操作的多个响应(鼠标单击、按键类型和鼠标滚动),java,multithreading,hook,system-calls,Java,Multithreading,Hook,System Calls,我使用JNativeHook来检索关于用户活动程度的信息,但我遇到了一个问题,即我将从一个操作中获得多个响应,但这并不一致。它在1个、2个或3个响应之间变化,但不会超过3个,我必须多次运行和退出程序才能得到不同的结果。在我发现问题再次发生之前,它似乎可以工作一整天 我还遇到了一个问题,我必须重新启动我的计算机,以便从一个动作中得到某种响应 从程序打印输出的示例: 按下鼠标:1 按下鼠标:1 按下鼠标:1 释放鼠标:1 鼠标点击:3 释放鼠标:1 鼠标点击:3 释放鼠标:1 鼠标点击:3 我使用3

我使用JNativeHook来检索关于用户活动程度的信息,但我遇到了一个问题,即我将从一个操作中获得多个响应,但这并不一致。它在1个、2个或3个响应之间变化,但不会超过3个,我必须多次运行和退出程序才能得到不同的结果。在我发现问题再次发生之前,它似乎可以工作一整天

我还遇到了一个问题,我必须重新启动我的计算机,以便从一个动作中得到某种响应

从程序打印输出的示例:

按下鼠标:1
按下鼠标:1
按下鼠标:1
释放鼠标:1
鼠标点击:3
释放鼠标:1
鼠标点击:3
释放鼠标:1
鼠标点击:3

我使用3个类,每个类一个:鼠标侦听器、键盘侦听器和鼠标滚轮侦听器。我为每一个线程创建一个线程,让它们同时运行

有4个主要类处理有问题的代码:

  • (我要发布的代码太多了,几乎让文章无法阅读,所以我希望这样做可以吗?)


    我不熟悉使用JNativeHook,我不确定它是否会创建同一个全局侦听器的多个对象或并发问题。

    对于未来的读者,如果您发现JNativeHook有任何错误,请在上报告,SOF有任何相关问题


    更新现在从2016年起,lib移动到了

    'Glocal
    GlobalScreen。registerHook
    方法在多个类文件中执行,这意味着多个钩子正在被注册并导致错误行为

    如果您仍然遇到相同类型的问题,请报告错误。有几个线程安全问题可能导致了1.2中所述的行为。