swing全局钩子快捷键

之前还写过jna不错, http://blog.ureshika.com/archives/834.html ,但是这次想实现全局钩子快捷键,默认jna做不到,可能还要自己扩展。它没有完全封装user32 api,使用目前提供的不能判断shift, control 等系统组合键。

没办法只得使用jintellitype http://melloware.com/products/jintellitype/index.html

它的使用很简单,示例:

首先要将jintellitype .dll文件放到可加载目录中,也可放在包中,注意包名是com\melloware\jintellitype

注册alt + shift + b/B

//第一个参数2是自己使用的标识符

JIntellitype.getInstance().registerHotKey(2, JIntellitype.MOD_ALT + JIntellitype.MOD_SHIFT, (int)'B');

//事件中的参数也是上面得标识符2

JIntellitype.getInstance().addHotKeyListener(new HotKeyListener() {...);

销毁:

//这个2就是上面使用的标识符

JIntellitype.getInstance().unregisterHotKey(2);
JIntellitype.getInstance().cleanUp(); //这一句是卸载,会将dll文件删除,所以一般不需要调用。

注意有个问题就是注册函数registerHotKey第三个参数应该是大写字符,小写就不起作用。上面例子中无论用户按alt+shift+B或是alt+shift+b都会触发事件。


Total views.

© 2013 - 2024. All rights reserved.

Powered by Hydejack v6.6.1