Java의 Robot 클래스를 이용하여, 마우스를 주기적으로 랜덤 하게 이동시켜 화면보호기 또는 절전모드를 방지하는 아주 간단한 코드를 작성하도록 하겠습니다.
Robot 클래스란
PC의 인풋 이벤트를 생성하기 위한 클래스로 키보드나 마우스 입력을 JAVA의 코드를 통해 받을 수 있습니다. 애플리케이션 자동 테스트나 데모를 자동으로 보여줄 목적으로 생성이 된 클래스입니다.
이 Robot 클래스를 이용하여 아주 간단하게 마우스를 일정 시간 간격으로 랜덤하게 이동을 시키는 코드를 구현하도록 하겠습니다. 먼저 Robot 객체를 생성하고, mouseMove라는 매서드를 통해 마우스를 이동을 하게 됩니다. 이 매서드는 매개변수로 화면 해상도의 좌표 값인 x와 y를 받아서, 그 좌표 위치로 마우스를 이동하는 매서드입니다.
이 x,y 값은 Math.random() 매소드로 랜덤 하게 생성해줍니다. 만약 1920 x 1080 해상도를 사용하는 경우, 아래와 같이 x값에 1920 / y값에 1080을 곱하여 화면 범위 내에서 마우스를 랜덤 하게 이동하게 합니다. 그리고 중간에 Thread.sleep(10000)을 추가하여 10초마다 한 번씩 랜덤 한 위치에 마우스를 이동시키도록 합니다.
아래 코드를 Run 하게 되면 종료 전까지 계속 마우스가 랜덤 하게 이동을 하게 됩니다.
import java.awt.Robot;
public class RobotTest {
public static void main(String[] args) throws Exception {
Robot robot = new Robot();
int x,y;
while(true){ // 종료할 때 까지 무한 반복
x = (int) (Math.random() * 1920); // 1920*1080 해상도 내의 x,y 값을 랜덤하게 생성
y = (int) (Math.random() * 1080);
robot.mouseMove(x, y); // x,y 좌표로 이동
Thread.sleep(10000); // 10초 대기 후 다음 좌표로 이동
}
}
}
반응형
'[IT] JAVA' 카테고리의 다른 글
[자바] JAVA GC (Garbage Collection) 개념 및 동작 원리/방식 (0) | 2022.09.08 |
---|---|
[JAVA] 객체 List 정렬 및 2번째 조건으로 정렬 (0) | 2022.07.13 |
[자바] Hash Set 정의 및 사용법 (추가, 삭제, 포함여부, 하나씩 출력, 리스트 변환 및 정렬) (0) | 2022.05.31 |
[자바] equals와 hashcode - 같은 객체인지 비교 (0) | 2022.02.23 |
[자바] Map의 Key 값 혹은 Value 값 List 생성, 객체 List에서 특정 값 List 생성 (1) | 2022.01.13 |
댓글