how2j.cn

下载区
文件名 文件大小
com.springsource.org.apache.commons.logging-1.1.1.jar 60k
jintellitype-1.3.1.jar 11k
JIntellitype.dll 29k

解压rar如果失败,请用5.21版本或者更高版本的winrar

点击下载 winrar5.21
步骤 1 : 魔兽世界怀旧服   
步骤 2 : 打怪升级   
步骤 3 : 按键精灵   
步骤 4 : 自己做一个   
步骤 5 : jar   
步骤 6 : dll   
步骤 7 : 代码   
步骤 8 : git   
步骤 9 : 切莫沉迷游戏   

步骤 1 :

魔兽世界怀旧服

edit
魔兽世界怀旧服开了大半个月啦,作为45内测就开始 high 的老玩家,自然是不能放过呀,哈哈哈
玩魔兽世界免不了要升级,而且在很多时候,都会按相同组合的一系列技能键来度过相当漫长而枯燥的一段时光。
为了减轻这个痛苦,于是站长就自己做了个按键小工具,让角色自己放一系列技能。。。略微缓解练级的烦闷~
这个小工具,其实就是个简单的按键精灵。 按键精灵想必大家都用过吧,这个小工具的功能远远不如按键精灵那么强大和丰富。 不过呢,毕竟是用 java 自己开发的,其中自有一番乐趣啦。 而且,通过这个小工具,很多同学才会意识到,原来 java 还可以捕捉热键,还可以进行自动按键操作呢。
那么接下来,我们就自动做一个吧。
首先需要2个jar. 分别是 jintellitype-1.3.1.jar 和 com.springsource.org.apache.commons.logging-1.1.1.jar
jintellitype-1.3.1.jar 是用来捕捉热键的,比如按下 ctrl+w, 它就知道是在唤醒它了。
com.springsource.org.apache.commons.logging-1.1.1.jar 这个是日志包。

已经放在右上角下载区了。
其实呢, java 本来是不能捕捉热键的,只能通过 jni 的方式来做。 所谓的 jni, 就是 java native interface, 简单说,就是java调用 c语言写好的 dll 文件来实现 java 本身实现不了的功能。 这一类的功能,往往都和操作系统有关,所以大都是 c语言写的。

所以需要提供一个动态链接库 dll 文件: JIntellitype.dll

已经放在右上角下载区了。
代码呢,就相对简单了。
都有注释了。
package wow; import java.awt.AWTException; import java.awt.Robot; import java.awt.event.KeyEvent; import com.melloware.jintellitype.HotkeyListener; import com.melloware.jintellitype.JIntellitype; public class TestWow { public static void main(String[] args) { // 注册热键 ctrl+W,当触发的时候,带上key值:1 JIntellitype.getInstance().registerHotKey(1, JIntellitype.MOD_CONTROL, (int) 'W'); // 注册热键 alt+F,当触发的时候,带上key值:2 JIntellitype.getInstance().registerHotKey(2, JIntellitype.MOD_ALT, (int) 'F'); //加上热键监听器 JIntellitype.getInstance().addHotKeyListener(new HotkeyListener() { @Override public void onHotKey(int k) { //通过判断k的值来剪间接地知道是触发了哪个热键,比如这里是1,就表示触发了 ctrl+W if (1 == k) { try { //启动机器人。。。 Robot robot=new Robot(); //暂停半秒 Thread.sleep(500); //狂按5秒钟的c键,每下间隔 300毫秒 for (int i = 0; i < 17; i++) { //按下C键 robot.keyPress(KeyEvent.VK_C); //弹起C键 //注: 一次按下,加上一次弹起,才能组合成一个点击 robot.keyRelease(KeyEvent.VK_C); //间隔300毫秒 Thread.sleep(300); } } catch (AWTException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } } //通过判断k的值来剪间接地知道是触发了哪个热键,比如这里是2,就表示触发了 alt+f if (2 == k) { try { Robot robot = null; robot = new Robot(); Thread.sleep(500); //一下组合的意思是挨个点击 2,3,4,1,每次点击之间间隔 1.5秒。因为魔兽世界每个瞬发技能公共CD是 1.5秒,需要经过 1.5秒之后,才能点击下一个技能 robot.keyPress(KeyEvent.VK_2); robot.keyRelease(KeyEvent.VK_2); Thread.sleep(1500); robot.keyPress(KeyEvent.VK_3); robot.keyRelease(KeyEvent.VK_3); Thread.sleep(1500); robot.keyPress(KeyEvent.VK_4); robot.keyRelease(KeyEvent.VK_4); Thread.sleep(1500); robot.keyPress(KeyEvent.VK_1); robot.keyRelease(KeyEvent.VK_1); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } } } }); } }
与此同时,代码也放在 git 上了:
https://github.com/how2j/wow
步骤 9 :

切莫沉迷游戏

edit
希望大家合理安排时间,切莫沉迷于游戏而不能自拔呀


HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。


问答区域    
2020-10-29 老师,你提供的 github 链接打不开,是不是需要VPN工具 才可以呀?
KoukouZAI

老师,你提供的 github 链接打不开,是不是需要VPN工具 才可以呀?




1 个答案

how2j
答案时间:2020-10-30
现在可以了,可能和网络有关系吧



回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到




2019-09-29 站长,项目启动报错
a1032077316

C:\Windows\System32\JIntellitype.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform 尝试了把JIntellitype.dll这个文件,放到了System32文件夹,以及jdk的bin文件夹下,还是报这个错误,本人是64位操作系统,不知道什么原因?




2 个答案

ztbingt
答案时间:2019-10-09
站在提供的JIntellitype.dll是32位的,网上下载64位的dll 就可以正常运行了
站在提供的JIntellitype.dll是32位的,网上下载64位的dll 就可以正常运行了

how2j
答案时间:2019-09-29
e? 我也是 System32啊,就放在项目下即可了啊



回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到




2019-09-19 我怀疑站长你在监视我的电脑
2019-09-18 站长牛逼




提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
关于 关于本站-开源工具-魔兽世界按键小工具 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 578362961
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
在已经存在的几千个提问里,有相当大的比例,是因为使用了和站长不同版本的开发环境导致的,比如 jdk, eclpise, idea, mysql,tomcat 等等软件的版本不一致。
请使用和站长一样的版本,可以节约自己大量的学习时间。 站长把教学中用的软件版本整理了,都统一放在了这里, 方便大家下载: https://how2j.cn/k/helloworld/helloworld-version/1718.html

上传截图