在不少java桌面应用中,经常需要实现热键功能,于是只能利用系统键盘钩子实现。 public class KeyboardHook { static { try { // System.out.println("load syshook..."); // System.loadLibrary("syshook"); System.load("D://myprojects//java//BlogHelper//syshook101.dll") ; } catch (Exception e) { e.printStackTrace() ; } // System.load("D://myprojects//java//BlogHelper//syshook.dll") ; } public KeyboardHook() { ( new PollThread(this) ).start(); } protected javax.swing.event.EventListenerList listenerList = new javax.swing.event.EventListenerList(); public void addEventListener(KeyboardEventListener listener) { listenerList.add( KeyboardEventListener.class, listener ); } public void removeEventListener(KeyboardEventListener listener) { listenerList.remove( KeyboardEventListener.class, listener ); } void keyPressed(KeyboardEvent event) { Object[] listeners = listenerList.getListenerList(); for ( int i = 0; i < listeners.length; i += 2 ) { if ( listeners[ i ] == KeyboardEventListener.class ) { ( (KeyboardEventListener)listeners[i + 1] ).GlobalKeyPressed( event ); } } } void keyReleased(KeyboardEvent event) { Object[] listeners = listenerList.getListenerList(); for ( int i = 0; i < listeners.length; i += 2 ) { if ( listeners[ i ] == KeyboardEventListener.class ) { ( (KeyboardEventListener)listeners[i + 1] ).GlobalKeyReleased( event ); } } } // // public static void main(String[] args) { // // KeyboardHook hook = new KeyboardHook() ; // // // } }
java 钩子 64位 操作系统_Java与系统钩子
最新推荐文章于 2021-03-25 15:40:13 发布