개발/파이썬
업무 자동화 (aka메크로) 정리
ksy0314
2022. 7. 15. 20:34
파이썬 win32 라이브러리를 사용하여 비동기 클릭 코드입니다.
단순 반복 작업에 사용하시면 됩니다.
(그렇다고 게임 메크로로 사용하시다 걸리셔도 난 모름)
import random
import win32api, win32gui, win32con
import time
import getColor
import sys
#비동기로 해당 프로그램의 x,y 좌표에 클릭 신호 전달
def click(x,y):
hWnd = win32gui.FindWindow(None, "프로그램 이름")
lParam = win32api.MAKELONG(x, y)
hWnd1 = win32gui.FindWindowEx(hWnd, None, None, None)
win32gui.SendMessage(hWnd1, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON, lParam)
win32gui.SendMessage(hWnd1, win32con.WM_LBUTTONUP, None, lParam)
#해당 범위에 랜덤 좌표에 클릭
def randomClick(x1,x2,y1,y2):
randomx = random.randrange(x1,x2+1)
randomy = random.randrange(y1,y2+1)
click(randomx,randomy)
#random 함수와 time 함수를 사용해서 랜덤 딜레이
def randomDelay(x):
#최소 딜레이 시간
randomt = 1
#99분의 1의 확률로 20초 딜레이
random99 = random.randrange(0,150)
if random99 == 0:
print("20초 딜레이")
time.sleep(20)
#25분의 1의 확률로 3초 딜레이
random25 = random.randrange(0,30)
if random25 == 0:
print("3초 딜레이")
time.sleep(3)
if x == -1:
("딜레이 없음")
return
elif x == False:
randomt += 0.1*random.randrange(0,6)
else:
randomt += x + 0.1*random.randrange(0,6)
print(randomt, "초 동안 딜레이")
time.sleep(randomt)
window 디펜더가 악성 프로그램으로인식하는 경우도 있습니다.
이때는 폴더나 파일을 예외처리 해주시면 됩니다.