티스토리 뷰

반응형

youtu.be/U2goTzsw028

지난 강의에 이어서 pyautogui를 사용한 사무자동화 편입니다.

계산기를 실행하여 버튼의 위치를 찾아 버튼을 눌러 계산을 합니다.

여기서는 좌표 값 정리를 위해 class와 dictionary를 사용합니다.

pyautogui의 locateCenterOnScreen 함수를 사용하여 좌표를 찾고

click 함수를 사용하여 버튼을 누리게 됩니다.

 

 

자세한 사항은 동영상을 참고해주세요.

 

[강의에 사용된 캡처 이미지]

 

[강의 소스코드]

import pyautogui
import time

# while True:
#     print(pyautogui.position())

add = [1,2,3,'+',7,8,9,'=']

class position:
    def __init__(self,x,y):
        self.x = x
        self.y = y

po = position(90,60)

print(po.x)

digit = {
    7:   (-po.x, -po.y),  8: (0, -po.y),  9:   (po.x, -po.y),  'x': (po.x*2, -po.y),
    4:   (-po.x, 0),      5: (0, 0),      6:   (po.x, 0),      '-': (po.x*2, 0),
    1:   (-po.x, po.y),   2: (0, po.y),   3:   (po.x, po.y),   '+': (po.x*2, po.y),
    'a': (-po.x, po.y*2), 0: (0, po.y*2), '.': (po.x, po.y*2), '=': (po.x*2, po.y*2),
    }


pyautogui.hotkey('win','q')
pyautogui.typewrite('calc',interval=0.1)
pyautogui.press('enter')
time.sleep(1)


poi = pyautogui.locateCenterOnScreen('calc.png', confidence = 0.8)
if poi != None:
    print(poi)
    # for i in range(0,10):
    #     pyautogui.click(poi.x+digit[i][0], poi.y+digit[i][1], interval=0.5)
    for i in add:
        pyautogui.click(poi.x+digit[i][0], poi.y+digit[i][1], interval=0.5)
        
반응형