| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133 |
- import os
- import pyautogui
- import tkinter as tk
- from tkinter import messagebox
- import time
- class AutoClicker:
- def __init__(self, src_folder="src"):
- self.src_folder = src_folder
- self.png_files = []
- def load_png_list(self):
- """加载src文件夹中的所有PNG文件"""
- if not os.path.exists(self.src_folder):
- os.makedirs(self.src_folder)
- print(f"文件夹 {self.src_folder} 不存在,已创建。")
- return []
- self.png_files = [f for f in os.listdir(self.src_folder) if f.endswith(".png")]
- print(f"加载PNG文件列表: {self.png_files}")
- return self.png_files
- def check_image_on_screen(self, image_path, confidence=0.8):
- """检查当前屏幕是否存在图片"""
- location = pyautogui.locateOnScreen(image_path, confidence=confidence)
- if location:
- print(f'图片: {image_path} 找到,坐标: {location}')
- return location
- else:
- print(f'没有找到图片: {image_path}')
- return None
- def click_image_center(self, image_path, confidence=0.8):
- """点击图片中心"""
- location = self.check_image_on_screen(image_path, confidence)
- if location:
- button_x, button_y = pyautogui.center(location)
- print(f'图片中心坐标: {button_x}, {button_y}')
- pyautogui.click(button_x, button_y)
- return True
- return False
- def move_mouse_to(self, x, y):
- """移动鼠标到指定坐标"""
- pyautogui.moveTo(x, y)
- print(f'鼠标移动到坐标: {x}, {y}')
- def mouse_click(self):
- """鼠标点击"""
- pyautogui.click()
- print('鼠标点击')
- def scroll_mouse(self, delta):
- """滚动鼠标滚轮"""
- pyautogui.scroll(delta)
- print(f'鼠标滚轮滚动: {delta}')
- def main():
- # 创建自动化点击器实例
- auto_clicker = AutoClicker()
- # 加载PNG文件
- auto_clicker.load_png_list()
- # 创建GUI
- root = tk.Tk()
- root.title("自动化点击器")
- root.geometry("480x320")
- button_font = ("Arial", 12)
- # 修改背景色和文字颜色
- button_bg_color = "lightblue"
- button_fg_color = "black"
- button_border_width = 2
- # 测试按钮
- def test_check_image():
- file = auto_clicker.png_files[0] if auto_clicker.png_files else "1.png"
- location = auto_clicker.check_image_on_screen(os.path.join(auto_clicker.src_folder, file))
- if location:
- messagebox.showinfo("测试结果", f"图片 {file} 找到!")
- else:
- messagebox.showerror("测试结果", f"图片 {file} 未找到!")
- def test_click_image():
- file = auto_clicker.png_files[0] if auto_clicker.png_files else "1.png"
- if auto_clicker.click_image_center(os.path.join(auto_clicker.src_folder, file)):
- messagebox.showinfo("测试结果", f"点击图片 {file} 成功!")
- else:
- messagebox.showerror("测试结果", f"点击图片 {file} 失败!")
- def test_move_mouse():
- auto_clicker.move_mouse_to(100, 100)
- messagebox.showinfo("测试结果", "鼠标已移动到 (100, 100)")
- def test_mouse_click():
- auto_clicker.mouse_click()
- messagebox.showinfo("测试结果", "鼠标点击完成")
- def test_scroll_mouse():
- auto_clicker.scroll_mouse(10)
- messagebox.showinfo("测试结果", "鼠标滚轮滚动完成")
- def start_tasks():
- while True:
- # 在这里添加你的任务代码
- print("开始任务")
- time.sleep(1)
- print("任务结束")
- time.sleep(1)
- # 创建按钮
- tk.Button(root, text="开始任务", command=start_tasks, font=button_font, bg=button_bg_color,
- fg=button_fg_color, bd=button_border_width).pack(pady=5)
- tk.Button(root, text="测试检查图片", command=test_check_image, font=button_font, bg=button_bg_color,
- fg=button_fg_color, bd=button_border_width).pack(pady=5)
- tk.Button(root, text="测试点击图片", command=test_click_image, font=button_font, bg=button_bg_color,
- fg=button_fg_color, bd=button_border_width).pack(pady=5)
- tk.Button(root, text="测试移动鼠标", command=test_move_mouse, font=button_font, bg=button_bg_color,
- fg=button_fg_color, bd=button_border_width).pack(pady=5)
- tk.Button(root, text="测试鼠标点击", command=test_mouse_click, font=button_font, bg=button_bg_color,
- fg=button_fg_color, bd=button_border_width).pack(pady=5)
- tk.Button(root, text="测试滚动鼠标", command=test_scroll_mouse, font=button_font, bg=button_bg_color,
- fg=button_fg_color, bd=button_border_width).pack(pady=5)
- # 启动GUI
- root.mainloop()
- if __name__ == "__main__":
- main()
|