본문 바로가기
프로그래밍/Python

[Python] 파이썬 메시지 박스 및 스크린샷하는 방법 (PyAutoGUI 라이브러리 이용)

by _BlankSpace 2019. 6. 23.

이번 포스팅은 PyAutoGUI 라이브러리를 사용한 마지막 글입니다.

 

이전 포스팅으로 PyAutoGUI 라이브러리를 이용하여 파이썬에서 마우스 및 키보드 제어하는 방법을 정리해봤습니다. 혹시, 관련 내용이 필요하시다면 아래 글을 참고해주세요.

[Python] 파이썬 마우스 제어하는 방법 (PyAutoGUI 라이브러리 이용)

[Python] 파이썬 키보드 제어하는 방법 (PyAutoGUI 라이브러리 이용)

 

PyAutoGUI 라이브러리를 사용한 마지막 포스팅 내용으로는 메시지 박스를 띄우는 방법과 스크린샷을 하는 방법에 대한 정리 내용입니다.

 

역시나 파이썬에서는 다양한 라이브러리가 이미 존재하기 때문에 갖다 쓰기만 하면 근사한 프로그램을 만들 수 있습니다. 아무튼, 바로 본론으로 들어가도록 하겠습니다.

 

0. 들어가기 전에...

이전 포스팅을 보신 분은 그냥 넘기셔도 됩니다. 이 부분은 처음 보시는 분만 참고하시면 되겠습니다.

해당 포스팅을 진행하기 위한 환경 설정에 대한 내용을 정리하도록 하겠습니다.

 

OS : Windows7

파이썬 버전 : Python 3.7.3

 

PyAutoGUI 라이브러리를 사용하기 위해서는 해당 라이브러리를 설치해야겠죠? Python을 설치하면 보통 pip도 같이 설치됩니다. 이 pip를 이용하여 PyAutoGUI 라이브러리를 설치하도록 할께요.

명령어는 아래를 참고해주세요.

pip install pyautogui

 

환경 설정은 이게 끝입니다. 이제, 메시지 박스 및 스크린샷 관련 함수에 대해서 설명하도록 하겠습니다.

 

1. 메시지 박스를 띄어보자.

PyAutoGUI에서 제공하는 메시지박스는 자바스크립트 스타일의 PyMsgBox의 메시지박스 함수를 이용 한것이라고 하네요. 바로, 메시지 박스에 대한 설명을 하도록 하겠습니다.

 

alert(text, title, button) - title문자열의 제목을 가진 text 문자열을 출력하는 메시지 박스를 만듭니다. button에 대한 문자열도 직접 지정할 수 있습니다.

import pyautogui
pyautogui.alert(text='hello test1', title='text')
pyautogui.alert(text='hello test1', title='text', button='ok button')

위처럼 간단하게 메시지 박스를 만들 수 있습니다. text 및 title을 직접 지정할 수 있으며, button의 내용도 직접 지정할 수 있습니다. alert이므로, button은 OK 버튼 하나만 출력합니다.

 

 

confirm(text, title, buttons) - title 문자열의 제목을 가진 text 문자열을 출력하는 메시지 박스를 만듭니다. 이떄, buttons에 리스트를 넣어서 여러 개의 버튼을 만들 수 있습니다. 여러 개의 버튼을 만든다는 부분이 alert과 다릅니다.

import pyautogui
pyautogui.confirm(text='hello text2', title='text', buttons=['OK', 'Cancel'])
pyautogui.confirm(text='hello text2', title='text', buttons=['OK', 'Cancel', 'test'])
print(pyautogui.confirm(text='hello text2', title='text', buttons=['OK', 'Cancel', 'test']))

아래 이미지처럼, confirm 창이 나옵니다.

 

 

confirm은 여러 버튼을 만드는 만큼, 해당 버튼을 누르면 문자열을 반환합니다. 따라서, 어떤 버튼을 눌렀는 지 확인할 수 있겠죠.

 

prompt(text, title, default) - prompt()는 어떠한 답변을 얻기 위한 메시지 박스입니다. 따라서 title과 text를 가진 메시지 박스의 기본 답변으로 default를 설정하는 것이죠. 이해가 잘 안되시면 아래 이미지를 참고해주세요.

 

 

import pyautogui
print(pyautogui.prompt(text='hello text3', title='text', default='test'))

따라서, prompt창에 답변을 적고 OK 버튼을 누르면, 그 답변을 출력할 수 있고, Cancel 버튼을 누른다면 None이라는 메시지가 반환됩니다.

 

password(text, title, default, mask) - 이것은 OK와 Cancel 버튼을 가진 메시지 박스로, text와 title 및 default는 prompt와 동일합니다. 다만, 차이점은 mask로 설정하는 문자로 입력하는 문자열이 변경된다는 점입니다. 역시나, 아래 이미지를 참고하시면 이해하시는 데 편할 것입니다.

 

 

import pyautogui
print(pyautogui.password(text='hello text3', title='text', default='test', mask='&'))

이 함수도 마찬가지로, OK 버튼을 눌러야만 입력한 내용이 반환됩니다. Cancel 버튼을 누르면 None이라는 내용이 반환됩니다.

 

2. 스크린샷을 해보자.

PyAutoGUI 라이브러리를 이용하면 스크린샷도 간단하게 할 수 있는 함수를 제공합니다.

 

screenshot(title, region) - 해당 함수를 이용하면 이미지의 title을 설정할 수 있고, region 인자를 지정하면 특정 위치만 스크린샷할 수도 있습니다.

import pyautogui
pyautogui.screenshot('test1.png') # 전체화면 스크린샷을 test1.png라는 이름으로 저장합니다.
pyautogui.screenshot('test2.png', region=(0, 0, 200, 200)) # 특정 영역위치의 스크린샷을 test2.png라는 이름으로 저장합니다.

 

더욱 자세한 내용은 아래 링크를 참고하시면 좋을 것 같습니다.

https://pyautogui.readthedocs.io/en/latest/screenshot.html#the-screenshot-function

 

이상으로 PyAutoGUI 라이브러리를 이용한 메시지 박스 및 스크린샷 함수에 대한 정리를 마치겠습니다. 혹시나 잘못된 내용이 있다면 댓글 남겨주세요. 바로 정정하도록 할께요!

댓글