在Windows上:使用钩子捕获Java中的全局输入事件

时间:2010-12-24 01:16:56

标签: java hook

简介

对于简单的测试工具记录器,如何在Java中捕获鼠标左键。

为了保持这一点,上次我这样做,它涉及使用JDK沙箱之外的代码。所以我用C ++编写了一个DLL并将它与JNI一起使用 - 我不想再这样做了。

现在我尝试使用jintellitype并且它在热键上做得很好(我也想做),但我似乎无法找到捕获鼠标左键的方法。 (example on jintellitype

关于回答

我认为答案将是以下之一:

答案1

下面: (x = unique nr; y =整数作为二进制修饰键,如ctrlalt; z =键代码)

JIntellitype.getInstance().registerHotKey(x, y, z);

y的{​​{1}}和z的正确值是什么。

答案2

不关心left mouse click,但您应该使用库Answer 1,这是如何做到的......

3 个答案:

答案 0 :(得分:2)

为什么不使用可以保护您免受JNI复杂性的JNA(当然JNA当然使用JNI)?它非常简单易用,并且有相当多的示例代码,包括在这个论坛中。

答案 1 :(得分:2)

我是Jintellitype的作者,它不是专为鼠标输入设计的。它只使用Windows MFC API进行全局键盘连接。

答案 2 :(得分:0)

来自http://melloware.com/products/jintellitype/index.html

  

JIntellitype是一个Java API,用于与Microsoft Intellitype命令交互以及在Java应用程序中注册Global Hotkeys。

是什么让你觉得它甚至支持鼠标?

顺便说一句,我认为你对JNI的抱怨是你不想编写 JNI代码,而不是你甚至不想使用它,因为我很漂亮肯定JIntellitype正在使用JNI。