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都会触发事件。