通过JIntellitype给Java程序注册系统热键

Java全局热键监听:JIntellitype实战。 JIntellitype 是一个 Java 库,专门用于在 Windows 系统中注册和监听全局快捷键(热键)。它通过调用 Windows 原生 API 实现功能,适用于需要后台响应用户键盘操作的场景,如音乐播放器控制、快速启动应用等。从官方仓库或 Maven 中央库获取 JAR 文件。指定的目录中,通常可直接放在项目根目录或。JIntellitype 需要。(根据系统位数)放置在。 阅读详情

       最近自己做了个小程序,需要注册系统热键,查了一下通过JIntellitype可以实现我的需求,在此记录一下。

       所谓系统级热键就是指一组快捷键,不论当前系统焦点在哪个程序中,只要按下该键,程序就能够捕捉该事件并进行相关处理。该功能在应用程序中是非常有用的,比如系统自带的 “win+L”自动锁屏,QQ中默认的“ctrl+alt+Z”自动打开当前的消息窗口等等。 

       Java中的事件监听机制虽然功能强大,但是当系统焦点脱离该程序时也无能为力。要实现该功能必须调用系统的钩子函数,因此在java中也必须通过jni调用来实现,但是对于不熟悉系统函数或者其他编成语言的朋友来说却是个难题。 后来在国外的一个网站上发现了一个组件“jintellitype”帮我们封装了绝大部分的功能,而且结构上也采用java中的事件监听机制,我们只要在程序中通过注册即可实现,下面是一个简单的例子:

       

import com.melloware.jintellitype.HotkeyListener;  
import com.melloware.jintellitype.JIntellitype;  
  
public class HotKey implements HotkeyListener {  
    static final int KEY_1 = 88;  
    static final int KEY_2 = 89;  
    static final int KEY_3 = 90;  
  
    /** 
     * 该方法负责监听注册的系统热键事件 
     * 
     * @param key:触发的热键标识 
     */  
    public void onHotKey(int key) {  
        switch (key) {  
            case KEY_1:  
                System.out.println("ctrl+alt+I 按下.........");  
                break;  
            case KEY_2:  
                System.out.println("ctrl+alt+O 按下.........");  
                break;  
            case KEY_3:  
                System.out.println("系统退出..........");  
                destroy();  
        }  
  
    }  
  
  
    /** 
     * 解除注册并退出 
     */  
    void destroy() {  
        JIntellitype.getInstance().unregisterHotKey(KEY_1);  
        JIntellitype.getInstance().unregisterHotKey(KEY_2);  
        JIntellitype.getInstance().unregisterHotKey(KEY_3);  
        System.exit(0);  
    }  
  
    /** 
     * 初始化热键并注册监听事件 
     */  
    void initHotkey() {  
        //参数KEY_1表示改组热键组合的标识,第二个参数表示组合键,如果没有则为0,该热键对应ctrl+alt+I  
        JIntellitype.getInstance().registerHotKey(KEY_1, JIntellitype.MOD_CONTROL + JIntellitype.MOD_ALT,  
                (int) 'I');  
        JIntellitype.getInstance().registerHotKey(KEY_2, JIntellitype.MOD_CONTROL + JIntellitype.MOD_ALT,  
                (int) 'O');  
        JIntellitype.getInstance().registerHotKey(KEY_3, JIntellitype.MOD_CONTROL + JIntellitype.MOD_ALT,  
                (int) 'X');  
  
        JIntellitype.getInstance().addHotKeyListener(this);  
    }  
  
    public static void main(String[] args) {  
        HotKey key = new HotKey();  
        key.initHotkey();  
  
        //下面模拟长时间执行的任务  
        while (true) {  
            try {  
                Thread.sleep(10000);  
            } catch (Exception ex) {  
                break;  
            }  
        }  
    }  
}  



[Java][详解]使用jintellitype实现键盘全局监听 -首先要下载jintellitype-1.3.9,这里提供下载地址 【百度网盘下载】 链接: https://pan.baidu.com/s/1rQ5MBkjW5I4X-nukn3x2lA 提取码: px57 (才202KB相信你们不会抱怨网速慢吧…) 下完后解压,得到以下文件- (才3个有用) 1.打开Eclipse,在项目的src目录下右键点击“New”-“Package”创建包“com.... 阅读详情

相关推荐

jintellitype.dll x86 x64都有, jintellitype-1.3.9.jar, 还有jar源码

jintellitype.dll x86 x64都有, jintellitype-1.3.9.jar, 还有jar源码

JAVA注册系统级快捷键源码

自己编写的用于截图和粘贴的小工具源码,内涵引用的jar包,需要自己引用下。 功能如下: 1键:粘贴 2键:截屏 3键:程序睡眠,释放1,2键 ALT+Q键:重启

java 键盘全局监听_java实现键盘全局监听,且不影响原本按键功能

首先需要调用第三方包JIntellitype,在网上下载jintellitype-1.3.9.jar,JIntellitype.dll,JIntellitype64.dll三个文件。新建一个项目,在项目下建两个包,第一个命名为"com.melloware.jintellitype",将JIntellitype.dll,JIntellitype64.dll放入这个包内;第二个包用来放自己写的文件。将...

weixin_39672011的博客 1349

解决java程序中注册系统级热键

把JIntellitype.dll复制到了C:\WINDOWS\system32下,然后在eclipse工程名在点击右键——属性——Java构建路径——库——添加外部jar。如果不行,放到D:\Program Files\Java\jre6\bin中,才有作用

QMI8658A和QMC5883L传感器校准全攻略:从零偏校准到椭球拟合

本文详细解析了QMI8658A和QMC5883L传感器的校准方法,从零偏校准到椭球拟合,涵盖了9轴运动传感器的核心误差来源及补偿技术。通过实战案例和数学建模,帮助开发者提升传感器精度,适用于无人机、AR/VR等智能硬件应用。

weixin_29189381的博客 158

全局热键及动态加载 dll

原文:http://walsece.iteye.com/blog/191169 如何在你的java程序中注册系统级热键   注:本文为原创文章,转载时请注明转载地址。 所谓系统级热键就是指一组快捷键,不论当前系统焦点在哪个程序中,只要按下该键,程序就能够捕捉该事件并进行相关处理。该功能在应用程序中是非常有用的,比如系统自带的 “win+L”自动锁屏,QQ中默认的...

troublelee的专栏 301

保姆级教程:SAP ABAPer如何为VF01销售发票和MIRO发票校验配置凭证替代(含AC_DOCUMENT BADI完整代码示例)

本文详细解析了SAP ABAP中通过AC_DOCUMENT BADI实现VF01销售发票和MIRO发票校验的凭证替代技术。从技术选型到BADI实施步骤,再到核心逻辑代码示例,为ABAP开发者提供了一套完整的解决方案,帮助应对财务部门复杂的业务需求。

weixin_30421809的博客 351

RegisterHotKey 热键的使用

简介: 简单的说就是全局快捷键,你的程序启动后注册热键到指定窗口,以后如果用户按下你注册的热键,你的指定窗口就会收到WM_HOTKEY消息通知,进而进行处理。 使用起来只有三个步骤: 1.注册热键 2.在WM_HOTKEY通知中进行逻辑处理 3.解除注册热键 API介绍: (具体消息参数含义,详细介绍等可以去msdn官网查看https://msdn.microsoft.com/en-

Barry的博客 1万+

微处理器实验报告-实验四

实验四 可编程定时/计数器8253实验 一、实验要求 利用8086外接8253可编程定时/计数器,可以实现方波的产生。 二、实验目的 1、学习8086与8253的连接方法。 2、学习8253的控制方法。 3、掌握8253定时器/计数器的工作方式和编程原理

青竹小轩的博客 5112

动力锂电池-二阶RC模型等效电路-RLS参数辨识-Simulink

1.锂电池二阶RC等效电路模型

QQ1978009424的博客 1万+

java程序中注册系统级热键 jintellitype

所谓系统级热键就是指一组快捷键,不论当前系统焦点在哪个程序中,只要按下该键,程序就能够捕捉该事件并进行相关处理。该功能在应用程序中是非常有用的,比如系统自带的  “win+L”自动锁屏,QQ中默认的“ctrl+alt+Z”自动打开当前的消息窗口等等。  Java中的事件监听机制虽然功能强大,但是当系统焦点脱离该程序时也无能为力。要实现该功能必须调用系统的钩子函数,因此在java中也必须通过

xuqian1638的博客 2373

【论文汇总】Diffusion Models视频生成/视频编辑/可控视频生成/跨模态视频生成

本文总结了Diffusion Models视频生成领域相关的工作,目前共收录142篇,持续更新中。

沉迷单车的追风少年 1672

如何在JAVA程序中注册热键

http://walsece.iteye.com/blog/191169 所谓系统级热键就是指一组快捷键,不论当前系统焦点在哪个程序中,只要按下该键,程序就能够捕捉该事件并进行相关处理。该功能在应用程序中是非常有用的,比如系统自带的 “win+L”自动锁屏,QQ中默认的“ctrl+alt+Z”自动打开当前的消息窗口等等。 Java中的事件监听机制虽然功能强大,但是当...

ad 593

LPDDR5电路设计的新功能

本文从硬件电路设计的角度,简述了LPDDR5 JEDEC标准中新增的功能。

一只豌豆象的博客 7146

ABAP链接外围数据库SQL实战案例

这是一个ABAP 直接读取SQL数据库数据的实例,以此种方式可以将SAP与外围的系统做一些集成,比如生产,SAP本身生产这部分是弱项,管不了那么细,很多车间的数据都是在MES系统,如管理上需要则可以将MES的一些数据自动读取过来,结合SAP本身的业务数据,做一些分析是比较方便的。 1、首先在SAP里建立数据库链接:DBCO ,直接增加一条记录,填上数据库的相关信息:IP地址、数据库名、账号SA、密码这些。 2、开发程序,设置成自动运行的计划,固定时间自动读取SQL里的数据,保存到SAP自定义表.

heng0757的专栏 1511

java全局快捷键

IntelliType是微软的键盘驱动,或者说这是微软为自己出品的键盘系列产品开发的配置工具,主要作用就是让键盘使用更加自定义化合个性化。 通过它重新配置键盘键盘分布。比如常用但是按起来不是很方便的按键,就可以换到自己觉得合适的地方了。还有就是“禁用”功能,就是让某些按键无效。 JIntellitype是模仿IntelliType功能的Java实现,功能与IntelliType类似,可

lxqq0000的专栏 1957

GEE:连续变化检测 CCD 第一步(导出ee.Algorithms.TemporalSegmentation.Ccdc函数的结果)

连续变化检测与分类(Continuous Change Detection and Classification, CCDC)主要有两个组件,一个连续变化检测 CCD,另外一个分类。在 Google Earth Engine (GEE)平台上进行 CCD 时间序列变化检测的时候,为了防止内存超限问题,将代码分为2阶段执行。第一阶段是运行 `ee.Algorithms.TemporalSegmentation.Ccdc` 函数,本文将详细介绍 CCD 的第一阶段的代码。

养乐多的博客 2492

swing全局热键及动态加载dll

原文:http://walsece.iteye.com/blog/191169 如何在你的java程序中注册系统级热键   注:本文为原创文章,转载时请注明转载地址。 所谓系统级热键就是指一组快捷键,不论当前系统焦点在哪个程序中,只要按下该键,程序就能够捕捉该事件并进行相关处理。该功能在应用程序中是非常有用的,比如系统自带的  “win+L

B_H_L的专栏 2095

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

java系统事件包_Java实现后台按键事件监听(注册系统级热键)

所谓系统级热键就是指一组快捷键,不论当前系统焦点在哪个程序中,只要按下该键,程序就能够捕捉该事件并进行相关处理。该功能在应用程序中是非常有用的,比如系统自带的“win+L”自动锁屏,QQ中默认的“ctrl+alt+Z”自动打开当前的消息窗口等等。Java中的事件监听机制虽然功能强大,但是当系统焦点脱离该程序时也无能为力。Java的最底层是jvm,所以单纯的java不能感知jvm再下面的操作系统的情...

weixin_28909303的博客 791

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

使用 jintellitype 库在 Java 程序中实现监听 Windows 全局快捷键(热键)

本文详细介绍 在 Java 程序中使用 jintellitype 库实现全局热键的监听

TeleostNaCl的博客 429

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

java 全局快捷键_java怎么用jintel..在windows上注册全局快捷键

最后附上完整能用的代码用来给童鞋们做参考import java.awt.AWTException;import java.awt.BorderLayout;import java.awt.EventQueue;import javax.swing.JFrame;import javax.swing.JPanel;import javax.swing.border.EmptyBorder;impor...

weixin_42651748的博客 289
上一篇: 群O之争
下一篇: java的序列化机制(一)
weiythi
博客等级 码龄16年 23粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值