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

조회수 1866회
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 이벤트를 발생시킬 방법은 없는건가요..?

  • (•́ ✖ •̀)
    알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)