Search code examples
javaawtkeypressawtrobot

Using Java to send key combinations


As per this previous link (How to send keyboard outputs) Java can simulate a key being pressed using the Robot class. However, how could a combination of key presses be simulated? If I wanted to send the combination "alt-123" would this be possible using Robot?


Solution

  • The simple answer is yes. Basically, you need to wrap the keyPress/Release of the Alt around the other keyPress/Releases

    public class TestRobotKeys {
    
        private Robot robot;
    
        public static void main(String[] args) {
            new TestRobotKeys();
        }
    
        public TestRobotKeys() {
            try {
                robot = new Robot();
                robot.setAutoDelay(250);
                robot.keyPress(KeyEvent.VK_ALT);
                robot.keyPress(KeyEvent.VK_1);
                robot.keyRelease(KeyEvent.VK_1);
                robot.keyPress(KeyEvent.VK_2);
                robot.keyRelease(KeyEvent.VK_2);
                robot.keyPress(KeyEvent.VK_3);
                robot.keyRelease(KeyEvent.VK_4);
                robot.keyRelease(KeyEvent.VK_ALT);
            } catch (AWTException ex) {
                ex.printStackTrace();
            }
        }
    
    }