Java实现全局键盘监控

前言

全局监控就是在离开程序的焦点以后键盘的监听依旧有效,可以用来做一些有意思的东西,比如一键完成一系列的操作。
这几天研究一些有意思的东西,发现Java在很多地方的使用真的是很有局限性,各个地方都是调用的.dll来完成,比如一些获取句柄使用User32(还遇见了同样用User32但是Python可以获取到句柄而Java获取不到)、驱动级键盘模拟使用WINIO等等。

JIntellitype使用

这次的全局键盘监控主要使用JIntellitype来完成,方式也很简单
参考:

https://blog.csdn.net/rico_zhou/article/details/80062914

这里直接给出jar和dll的下载链接:
http://dd.jb51.net:81/201409/tools/jintellitype-1.3.9-dist(jb51.net).rar

碰到的问题

对于com.melloware.jintellitype目录下存放.dll文件的问题,这里我碰到一个坑点。
首先要获取到JIntellitype的实例,它的构造器如下。
在这里插入图片描述
理论上载入dll文件是可以把dll放在classpath路径或者直接放在jdk的bin下,双亲委派模型都是会去优先加载的,而教程中是直接在当前目录下新建了一个com.melloware.jintellitype包来存放,这在代码里明确写死了加载目录应该也是可行的,但是我两种方法都尝试过后依旧是载入失败报如图所示异常。
键盘脚本监听

最后发现是idea并没有对我存放的目录进行编译,于是我直接在编译后的目录里存放了dll文件
如下:
键盘脚本监听

后记

全局监控注册一下按键,并在监听中根据注册的第一个参数进行匹配然后执行方法即可,配合上WINIO和USER32可以进行一些游戏脚本的简单制作这里就不多说了,这里只是有点兴趣所以简单的研究了一下。
java调用本地方法的方式可以完成很多java局限性的功能,包括程序与C语言的对接也需要jna来实现,了解一些jna的使用方式还是很有必要的。
112是F1/113是F2 理论上应该用VK_F1和VK_F2,但是这个常量是哪个接口里存的实在没找到…
键盘脚本监听

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值