자바 robot 함수를 Process 실행 후 실행하는 방법


public static void main(String[] args) throws Exception {

    p = Runtime.getRuntime().exec("java -jar HandPoint.jar");

    Robot robot = new Robot();

    if(isRunning(p)==true){
        AUTOTAB(robot);
    }else{
        System.out.println("치명적 오류");
    }

}

static boolean isRunning(Process process) {
    try {
        process.exitValue();
        return false;
    } catch (Exception e) {
        return true;
    }
}

public static void AUTOTAB(Robot robot){
    robot.keyPress(KeyEvent.VK_ALT);
    robot.keyPress(KeyEvent.VK_TAB);
}

소스코드는 다음과 같습니다. JAR을 실행하면 윈도우 형태로 실행이 되기때문에 윈도우 창을 감추기 위해서 alt+tab키를 robot 함수를 통해서 이벤트를 발생시켜봤습니다. 코드 순서대로 보았을때는 분명히 jar 실행시키는 프로세스 함수가 먼저 실행되는 줄 알았으나, 왠일인지 로봇 함수가 먼저 실행되어 ALT+TAB 커멘드가 먼저 입력이되고 프로세스가 실행됩니다. 반대로 JAR 실행시키는 프로세스 먼저 실행 후, ALT+TAB 이벤트를 발생시킬 방법은 없는건가요..?

  • 2016년 11월 30일에 작성됨

조회수 18


로그인이 필요한 기능입니다.

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 작성한 답변에 다른 개발자들이 댓글을 작성하거나 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.
► 로그인
► 계정만들기
Close