본문 바로가기

개인공부/python

나 혼자 하는 프로젝트 3탄 - 업무자동화(RPA) 데스크탑 3장 - 윈도우(창) 다루기

데스크탑 자동화를 위해 매번 해당 스크린을 기준으로 좌표를 설정하고 이동 명령을 내리는건 상당히 번거로운 일이다.

왜냐하면, 전체 화면으로 실행되는 프로그램이 아닌 경우, 윈도우는 마지막 화면 크기와 위치를 기억해서 그 위치에서 다시 프로그램으로 열어주기 때문이다.

따라서, 해당 프로그램을 창을 기준으로 마우스 좌표를 설정해 주는 것을 학습해야 한다.

pyautogui.getActiveWindow()를 활용하면 현재 활성화된 창의 정보를 받아올 수 있다.

이때 중요한 정보가 3가지 인데, title(창의 제목), size(크기), left, top, right, bottom (좌표값) 이다.

그 중에서도 좌표값을 가져오는게 제일 유용한 기능이라고 생각이 든다.

이렇게 확인된 좌표값을 pyautogui.click()에 입력하면 해당 프로그램 창의 위치에 상관없이 해당 프로그램 안의 고정된 좌표로 마우스를 이동,작업이 가능하다.

getAllWindows()와 getWindowsWithTitle()을 이용하면, 현재 화면에 띄워진 모든 윈도우(프로그램창)의 정보와 특정 텍스트를 포함하는 윈도우를 가져올 수 있다.

이때 이 특정 텍스트가 포함된 윈도우를 변수로 선언하면 해당 정보를 리스트로 저장하게 된다.

모니터가 두개다 보니 좌표값이 - 가 나왔다...

해당 리스트의 0번째 index는 해당 윈도우의 위치정보와 title을 포함하고 있다.

만약 "제목 없음"이란 문자를 포함하는 윈도우가 2개라면 w는 총 2개의 요소를 가지는 리스트가 되는 것이다.

이를 if문을 이용하면, 스크린 제일 앞쪽으로 활성화 시키는게 가능하다.

또한 현재 화면의 크기에 따라 최대화(화면 가득 채움) 또는 최소화(화면 아래로 내림), 크기 복원(화면과 관련된 마지막 명령 취소) 이 가능하다. 또한 close()를 통해 종료가 가능하다.