JAVA不同层次模拟按键思路分享
一、键盘、鼠标输入层次介绍
1、当按下键后,键盘或鼠标产生扫描码(不同芯片的键盘产生扫描码不一样)。
2、扫描码被送给相应硬件的驱动,驱动将扫描码转换成虚拟码(就是以 vk_ 打头的,其实就是byte大小的数了,不同语言的虚拟码不全一样)。
3、虚拟码插入消息队列,等待被传给相应程序。然后就是程序处理的事了。
二、模拟层次介绍
1、局部模拟:用程序生成虚拟码,将虚拟码直接发给程序。
其一:Java自带的Robot就是这么干的。处理普通程序还有效,游戏就不用想了。
其二:jna的自带platform中,User32类 的sendMessage、postMessage方法。处理普通程序还有效,游戏就不用想了。
2、全局模拟:将扫描码、虚拟码插入到消息队列,让后就不管了。

本文分享了JAVA在不同层次模拟按键的思路,包括键盘鼠标输入层次介绍、局部模拟和全局模拟的方法,并探讨了驱动级模拟的可能性。通过测试,发现部分方法在游戏控制上受限。最后提到了使用第三方库jacob与dm.dll实现游戏控制的成功案例。
最低0.47元/天 解锁文章
1059





