这个捕获不是在任何component中执行,即不是通过实现KeyListener接口方法来做。大家用过按键精灵就知道,F10启动,F12暂停,但是能不能在java程序启动后像按键一样广泛地捕捉到按键信息呢?

解决方案 »

  1.   

    目前我只做到这里,不受按键信息控制的输出按键,可能有一些稀奇古怪的类能够实现这个功能,希望有知情的高手能指点一二。import java.awt.Robot;
    import java.awt.event.KeyEvent;public class SimulatedEnter 
    {
        private static int count;
        private static boolean isLoopStart;
        
        
        public static void main(String[] args)
        {
            try
            {
                Robot robot = new Robot();
                while (true)
                {
                    //while (isLoopStart)
                    {
                        robot.keyPress(KeyEvent.VK_ENTER);
                        robot.delay(10);
                        robot.keyRelease(KeyEvent.VK_ENTER);
                        count++;
                    }
                    robot.delay(100);
                }
            }
            catch (Exception e)
            {}
        }
            public void keyPressed(int keycode)
        {
            //int keycode = e.getKeyCode();
            System.out.println("keyPressed");
            switch (keycode)
            {
                case KeyEvent.VK_F10:
                    System.out.println("VK_F10");
                    isLoopStart = true;
                    break;
                case KeyEvent.VK_F12:
                    isLoopStart = false;
                    break;
                default:
                    break;
            }
        }
    }
      

  2.   

    Java应该无法实现全局的键盘Hook,因为Java运行于JVM上,必须用C or C++写全局Hook Dll才可以。
      

  3.   

    回lovesnow1314(流浪):
       谢谢,但目前已经实现了全局模拟按键,但就不能全局捕获? 这两者有区别吗?