Java与系统钩子

来源:互联网 发布:照片添加日期软件 编辑:程序博客网 时间:2024/06/05 04:38
在不少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() ;//////}}
原创粉丝点击