반응형
요건 이전글인 thread 를 사용하기 이전에 구현했던 코드.
모니터의 가장 왼쪽 위 구석을 (0, 0) 이라고 했을때, (100, 100) 지점과 180도 대칭이 되는 지점
(넓이길이 - 100, 높이길이 - 100) 지점을 마우스가 왔다갔다 하도록 구현했다.
import pyautogui
pyautogui.FAILSAFE = False
def position_scr_out() -> bool:
cur_x, cur_y = pyautogui.position()
if cur_x < 0 or cur_x > scr_width or cur_y < 0 or cur_y > scr_height:
print("program stopped: ", end = " ")
print("cur_x is " + str(cur_x), end = " ")
print("cur_y is " + str(cur_y))
return True
return False
scr_width, scr_height = pyautogui.size()
print("main monitor size is : " + str(scr_width) + " * " + str(scr_height))
while True:
pyautogui.moveTo(0 + 100, 0 + 100)
if position_scr_out():
break
pyautogui.sleep(2)
pyautogui.moveTo(scr_width - 100, scr_height - 100)
if position_scr_out():
break
pyautogui.sleep(2)
마우스가 이동하는 중에 사이사이 position_scr_out 함수를 불러서
마우스가 화면 밖으로 나가면 프로그램을 종료 하도록 했다.
(모니터를 여러대 쓸때, 다른 모니터로 넘어가면 화면 밖으러 나간것으로 처리함)
그리고 pyautogui.FAILSAFE = False 를 하면
모니터가 1대일때, 가장 가장자리로 포인터를 이동하면 프로그램이 종료 되는 것을 막을 수 있다.
default 는 True 이고 혹시모를 프로그램 탈출을 위해서 추천하지 않는다고 한다.
반응형
댓글