【下载jintellitype】

首先要下载jintellitype-1.3.9,这里提供下载地址
【jintellitype-百度网盘下载】
链接: https://pan.baidu.com/s/1x10DFQq1P8rmW-wFbYXRcQ
提取码: 1mak
(才202KB相信你们不会抱怨百度网速慢吧…)

下完后解压,得到以下文件-

(这么多东西才3个有用…)

【一】导入jintellitype包下的dll文件

1.打开Eclipse,在项目的src目录下右键点击“New”-“Package”创建包“com.melloware.jintellitype”


2.然后创建一个包,包名为:com.melloware.jintellitype

3.完成后点“Finish”,然后把jintellitype-1.3.9文件夹内的“JIntellitype.dll”和“JIntellitype64.dll”拖拽到Eclipse的com.melloware.jintellitype包下。

变成这样:

这个不用管,直接点OK
然后变成这样:

【二】导入jintellitype-1.3.9.jar外部包

1.首先在项目上右键弹出菜单,点击“Build Path”-“Add External Archives…”

2.然后弹出了一个文件选择的对话框,选择“jintellitype-1.3.9”目录下的“jintellitype-1.3.9.jar”外部包,然后点“打开(O)”

打开后,Eclipse下就多了一个“Referenced Libraries”目录,如图所示-

【三】导入外部包后,就可以开始写代码了。

1.首先要导入来自jintellitype的包。

import com.melloware.jintellitype.HotkeyListener;
import com.melloware.jintellitype.JIntellitype;

2.定义热键标识,用于在设置多个热键时,在事件处理中区分用户按下的热键*

public static final int MINIMIZE_KEY_MARK = 1;//设置最小化的热键标识
public static final int EXIT_KEY_MARK = 0;//设置关闭的热键标识

(当然这一步可以省略,因为这只是为了区分热键的作用)
3.注册热键
第一个参数表示该热键的标识,第二个参数表示组合键,如果没有则为0,第三个参数为定义的主要热键

JIntellitype.getInstance().registerHotKey(FUNC_KEY_MARK, JIntellitype.MOD_ALT, (int)'S');
JIntellitype.getInstance().registerHotKey(EXIT_KEY_MARK, JIntellitype.MOD_ALT, (int)'Q');

例:

JIntellitype.getInstance().registerHotKey(1, 0, (int)'S');//给变量名为1的值设置热键为S,其中没有组合键。
JIntellitype.getInstance().registerHotKey(0, JIntellitype.MOD_ALT, (int)'Q');//给变量名为0的值设置热键为Q,组合键为Alt,即Alt+Q

必须把char类型转换成int类型,单字母转换成int类型还简单,直接强制转换就行了,如:

char i ='Q';
System.out.println("字母键 "+i+" 的int值为:"+(int)i);
char one ='1';
System.out.println("数字键 "+one+" 的int值为:"+(int)one);
//键盘键 Q 的int值为:81
//数字键 1 的int值为:49

但是像“F1”、“Ctrl”键这些数值就必须要单独记了:

F1 = 112;
F2 = 113;
F3 = 114;
F4 = 115;
F5 = 116;
F6 = 117;
F7 = 118;
F8 = 119;
F9 = 120;
F10 = 121;
F11 = 122;
F12 = 123;
ESC = 27;
TAB = 9;
CAPSLOCK = 20;
SHIFT = 16;
CTRL = 17;
START_LEFT = 91;
START_RIGHT = 92;
CONTEXT_MENU = 93;
ALT = 18;
SPACE = 32;
CARRIAGE_RETURN = 13;
LINE_FEED = 10;
BACK_SLASH = 220;
BACK_SPACE = 8;
INSERT = 45;
DEL = 46;
HOME = 36;
END = 35;
PAGE_UP = 33;
PAGE_DOWN = 34;
PRINT_SCREEN = 44;
SCR_LK = 145;
PAUSE = 19;
LEFT_ARROW_KEY = 37;
UP_ARROW_KEY = 38;
RIGHT_ARROW_KEY = 39;
DOWN_ARROW_KEY = 40;

4.添加热键监听
使用方法:

        JIntellitype.getInstance().addHotKeyListener(new HotkeyListener() {public void onHotKey(int markCode) {switch (markCode) {  case <标识符或数字>:  //输入动作break;  case <标识符或数字>: //输入动作break;............}               }});

例:

        JIntellitype.getInstance().addHotKeyListener(new HotkeyListener() {public void onHotKey(int markCode) {switch (markCode) {  case MINIMIZE_KEY_MARK://给标识符为最小化的热键设置监听setVisible(false);System.out.println("最小化");break;  case EXIT_KEY_MARK://给标识符为关闭的热键设置监听System.out.println("退出");System.exit(0);break;   }                }});

5.删除热键
删除热键只需要一行代码就可以了。
使用方法:

JIntellitype.getInstance().unregisterHotKey(<标识符或数字>);//用于移除热键注册的方法

例:删除变量为1的热键

JIntellitype.getInstance().unregisterHotKey(1);//用于移除热键注册的方法,把变量名为1的变量删除。

4.示例程序

下面的连点器源代码使用了jintellitype实现键盘全局监听,热键为按下R键开始连点;按下T键停止连点。
【源代码-百度网盘下载】
链接: https://pan.baidu.com/s/1uouDAkHRj2rWE978kLfiVA
提取码: 781s

package StartMain;import java.awt.AWTException;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Robot;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.InputEvent;import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;//第一步:导入jintellitype包
import com.melloware.jintellitype.HotkeyListener;
import com.melloware.jintellitype.JIntellitype;
/*** @Title 使用jintellitype实现键盘全局监听的实例程序:连点器* @author YuXiang187*/
public class Start extends JFrame{int LeftRight = 0;public Start () {setTitle("连点器");setVisible(true);setLocationRelativeTo(null); //设置窗体居中setSize(180,80);setDefaultCloseOperation(EXIT_ON_CLOSE);Container c = getContentPane();JTextField text = new JTextField("连点还没开始,按下R键开始");JButton start = new JButton("开始连点");JButton stop = new JButton("停止连点");JButton delete = new JButton("删除热键");text.setEditable(false);stop.setEnabled(false);start.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {text.setText("连点开始,按下T键结束");start.setEnabled(false);stop.setEnabled(true);LeftRight = 1;}});stop.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {text.setText("连点已停止,按下R键重新开始");start.setEnabled(true);stop.setEnabled(false);LeftRight = 0;}});c.add(text,BorderLayout.NORTH);c.add(start,BorderLayout.WEST);c.add(stop,BorderLayout.EAST);c.validate();//第二步:注册热键//JIntellitype.getInstance().registerHotKey(FUNC_KEY_MARK, JIntellitype.MOD_ALT, (int)'S');//第一个参数表示该热键的标识,第二个参数表示组合键,如果没有则为0,第三个参数为定义的主要热键JIntellitype.getInstance().registerHotKey(0, 0, (int)'R');//给变量名为0的值设置热键为R,其中没有组合键。JIntellitype.getInstance().registerHotKey(1, 0, (int)'T');//给变量名为1的值设置热键为T,其中没有组合键。//第三步:添加热键监听JIntellitype.getInstance().addHotKeyListener(new HotkeyListener() {public void onHotKey(int markCode) {switch (markCode) {  case 0://给标识符为0的热键设置监听text.setText("连点开始,按下T键结束");//开始连点start.setEnabled(false);stop.setEnabled(true);LeftRight = 1;break;  case 1://给标识符为1的热键设置监听text.setText("连点已停止,按下R键重新开始");//停止连点start.setEnabled(true);stop.setEnabled(false);LeftRight = 0;break;   }               }});delete.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent e) {//第四步:删除热键//JIntellitype.getInstance().unregisterHotKey(<标识符或数字>);//用于移除热键注册的方法JIntellitype.getInstance().unregisterHotKey(1);//用于移除热键注册的方法,把变量名为1的变量删除。JIntellitype.getInstance().unregisterHotKey(0);//用于移除热键注册的方法,把变量名为0的变量删除。delete.setEnabled(false);}});Robot robot = null;try {robot = new Robot();} catch (AWTException e) {text.setText("连点器出现错误,运行失败");e.printStackTrace();}while (true) {if (LeftRight == 1) {robot.mousePress(InputEvent.BUTTON1_DOWN_MASK);// 按下左键robot.mouseRelease(InputEvent.BUTTON2_DOWN_MASK);// 释放左键}}}public static void main(String[] args) {new Start();}
}


别抱怨界面不好看,能用就行 : D

[Java][详解]使用jintellitype实现键盘全局监听相关推荐

  1. WebView使用详解之WebChromeClient的常用事件监听

    一.WebChromeClient 1.概述 (1). 与WebViewClient的区别 很多同学一看到这里有Chrome,立马就会想到google 的Chrome浏览器:这里并不是指Chrome浏 ...

  2. html鼠标滚轮监听,jQuery - 鼠标滚轮插件jquery.mousewheel.js详解(上下、左右滚动监听)...

    1,插件介绍 jquery.mousewheel.js是一个用于添加跨浏览器的鼠标滚轮支持的 jQuery插件. 2,使用说明 (1)使用该插件,只需将 mousewheel事件绑定到一个元素上即可. ...

  3. python gil 解除_详解Python中的GIL(全局解释器锁)详解及解决GIL的几种方案

    先看一道GIL面试题: 描述Python GIL的概念, 以及它对python多线程的影响?编写一个多线程抓取网页的程序,并阐明多线程抓取程序是否可比单线程性能有提升,并解释原因. GIL:又叫全局解 ...

  4. Java中使用JNA实现全局监听Linux键盘事件

    title: Java中使用JNA实现全局监听Linux键盘事件 date: 2019-05-03 19:08:00 Java中使用JNA实现全局监听Linux键盘事件 用JNA实现的键盘监听,在Wi ...

  5. Java中使用JNA实现全局监听Windows键盘事件

    title: Java中使用JNA实现全局监听Windows键盘事件 date: 2019-05-02 21:55:00 Java中使用JNA实现全局监听Windows键盘事件 前言: 一直打算做一个 ...

  6. java8编程开发入门 李兴华_李兴华系列--JAVA详解视频(jdk1.8)及项目实战教程

    李兴华系列--JAVA详解视频教程(jdk1.8)有源码+文档01_<Oracle从入门到精通> 02_<Java8编程入门> 03_<Java8面向对象编程> 0 ...

  7. Java详解剑指offer面试题50--第一个只出现一次的字符

    Java详解剑指offer面试题50–第一个只出现一次的字符 找出字符串中找出第一个只出现一次的字符,比如输入"abacceff",则输出'b' 要想知道某个字符是不是只出现了一次 ...

  8. Java Swing 键盘事件监听

    Java Swing 键盘事件监听 开发工具与关键技术:java. elipse2019.jdk1.8 作者:Amewin 撰写时间:2019年9月16日 键盘事件的事件源一般丐组件相关,当一个组件处 ...

  9. C#全局监听Windows键盘事件

    本方法只涉及到如何应用现有工具类实现监听,其具体的原理主要涉及到调用Windows底层API:定义一个钩子钩住键盘事件,在这里不讲具体原理. 1.工具类代码 引用 using System; usin ...

最新文章

  1. C 的大致运行原理。
  2. 为什么不建议使用 Java 自带的序列化?
  3. linux根文件系统配置,嵌入式Linux的Cramfs根文件系统配置的解决方案
  4. python计算运动会某个参赛选手的得分。数据保存在文件中_Python基础教程之第二章---变量和字符串(1) 搬运...
  5. 一、在vue项目中使用mock.js(详解)
  6. 判断整除(信息学奥赛一本通-T1195)
  7. datalist 的用法。也是增删改查,但是比较智能。用数据绑定的方式,可以有不同的显示方法,下面是对一个表的增删改查的参考代码...
  8. [转载] python接口测试:封装get和post请求+重新封装requests类
  9. c语言单片机循环程序,单片机c语言教程:C51循环语句
  10. Centos系统新建文本文档.txt
  11. C语言-快速排序算法-原理-详解(完整代码)
  12. 纽约州立大学环境与林业学院计算机科学专业,2020年纽约州立大学环境科学与林业科学学院专业设置...
  13. 那些有趣的网站系列(十二)
  14. 在VirtualBox上安装deepin
  15. ZN-61A网络型PLC可编程控制器实训装置
  16. Ubuntu16.04 安装 CUDA、CUDNN、OpenCV 并用 Anaconda 配置 Tensorflow 和 Caffe 详细过程(此种方案不好,好的方案是另一篇,基于pyhton2的)
  17. [回忆]2007年的GDNT研发广东北电辞职信.
  18. 算法之地推算法(逆推法)
  19. 17篇点云处理综述-点云语义分割、点云物体检测、自动驾驶中的点云处理……
  20. javascript超空间(removeChild和innerHTML区别)

热门文章

  1. 微信开发者平台切换企微账号与企业微信小程序模式
  2. 最喜欢的一款星光和光晕ps笔刷
  3. Linux Command—— Wildcard
  4. 【FPGA入门教程】(七)FSM(Finite State Machine,有限状态机)设计
  5. 【技法操作】UI界面设计,用PS绘制闹钟页面教程
  6. linux wifi 8192移植 及部分wifi工具的使用
  7. openfoam学习心得——openfoam编程进阶
  8. ERROR: Unable to access 'C:\Users\鏉庨摥\.emulator_console_auth_token': emulator consol...解决方法
  9. 安卓软件开发需要学什么软件?Android开发最佳实践手册全网独一份,面试必问
  10. 常见的USB VID