티스토리 뷰

import os

import tkinter.ttk as ttk

import tkinter.messagebox as msgbox

from tkinter import * # __all__

from tkinter import filedialog

from PIL import Image

from click import command

import pyautogui

import sys

import time

import sys

import threading

# start_thead=0

from tkinter import *

import time

from threading import *

# Import Module

from tkinter import *

import time

from threading import *

 

# Create Object

timeout = 5

root = Tk()

root.title("이미지 자동 클릭")

Label(root, text="사용방법"). pack()

Label(root, text="클릭을 원하는 이미지 스크린숏 떠서 원하는 부분만 저장함"). pack()

Label(root, text="사진 찾기 버튼으로 사진 찾고 기다릴 시간 지정을 위해서"). pack()

Label(root, text="기다릴 초 입력하고 시간 지정 버튼 클릭"). pack()

Label(root, text="시작 버튼 누르면 시작되고, 정지는 정지, 종료는 종료"). pack()

 

global running0  

global running1  

running0 =True

running1 =True

# Set geometry

root.geometry("400x400")

 

def threading2():

    # Call work function

    t2=Thread(target=work 2)

    t2.start()

 

# work function

def work 2():

    global running0

    running0=False

    print("정지")

 

 

def threading3():

    # Call work function

    t3=Thread(target=work3)

    t3.start()

 

# work function

def work3():

    global running0  

    running0=False

    print("종료")

    root.quit()

     

# use threading

def threading1():

    # Call work function

    t1=Thread(target=work1)

    t1.start()

 

# work function

def work1():

    global timeout

    timeout=int(e.get())

 

    # while running1:

    #     i=1

    #     print(i, "work1")

    #     time.sleep(1)

    #     i+=1

        # while running11:

        #     print(i*2, "work 4")

        #     # break

 

def threading0():

    # Call work function

    t0=Thread(target=work0)

    t0.start()

 

# work function

def work0():

    global timeout

    while running0:

        try:    

            start = time.time()

            target = None

            while target is None and running0: #여기서 엔드 조건 쓰면 어떨까?

                target = pyautogui.locateOnScreen(path)

                end = time.time()

                if end - start > timeout:

                    print("못 찾음")

                    break

            if target:

                pyautogui.click(target)

                print("클릭")

            time.sleep(timeout)

            print("기다림")  

        except:

            continue

##############사진 찾기############

def add_file():

    file = filedialog.askopenfile(mode='r', filetypes=[(("PNG 파일", "*. png"), ("모든 파일", "*.*"))])

    if file:

      filepath = os.path.abspath(file.name)

      global path

      path = filepath

 

file_frame = Frame(root)

file_frame.pack(fill="x", padx=5, pady=5) # 간격 띄우기

 

btn_add_file = Button(file_frame, padx=5, pady=5, width=12, text="사진 찾기", command=add_file)

btn_add_file.pack()

 

 

#########기다릴 시간

Label(root, text="기다릴 초 입력, 기본 5초"). pack()

e=Entry(root, width=30)

e.pack()

e.insert(0,5)

 

 

 

 

# Create Button

 

Button(root, text="시간 지정", command = threading1). pack()

Button(root, text="시작", command = threading0). pack()

Button(root, text="정지", command = threading2). pack()

Button(root, text="종료", command = threading3). pack()

# Button(root, text="stop2", command = threading2). pack()

root.mainloop()

 

 

사용법은 원하는 부분을 스샷 떠서 이미지파일로 만듭니다. 예를들어 화살표표시나 아님 공격 버튼 같은것을 클릭할수 있게 그 부분을 스샷떠서 저장하고 이미지를 업로드해서 클릭하게 하면 됩니다.