Описание проекта:
Этот проект - это автокликер, разработанный на Python, который позволяет автоматизировать рутинные задачи.
Основные характеристики:
- Интерактивный пользовательский интерфейс, созданный с помощью Tkinter, обеспечивает удобство использования.
- Возможность задавать координаты клика и интервалы между кликами.
- Использование многопоточности для обеспечения отзывчивости интерфейса и независимости процесса клика от UI.
- Функционал отслеживания положения курсора и установки горячих клавиш для управления автокликером.
Использованные технологии:
- Python: Язык программирования, на котором написан автокликер.
- Tkinter: Библиотека для создания графического интерфейса пользователя.
- PyAutoGUI: Библиотека для автоматизации взаимодействия с пользовательским интерфейсом на уровне ОС.
- Threading: Модуль Python для многопоточного выполнения кода.
- Keyboard: Библиотека для работы с горячими клавишами и событиями клавиатуры.
О проекте:
def automated_click(interval):
global running, time_left
running = True
update_status("Статус: Активен")
while running:
time_left = interval
while time_left > 0 and running:
time.sleep(1)
time_left -= 1
update_timer()
if running:
pyautogui.click(x, y)
- Основная функция, где выполняется скрипт. Здесь объявлена глобальная переменная running, time_left, отслеживающая статус активности и время.
- При вызове функции running устанавливается в значение True, что обновляет статус на "Активен", и затем активирует основной цикл.
- В цикле time_left изначально равно интервалу между кликами, а вложенный цикл уменьшает time_left каждую секунду, обновляя таймер через функцию update_timer.
def start_clicking():
global x, y
x = int(x_entry.get())
y = int(y_entry.get())
interval = int(interval_entry.get())
t = threading.Thread(target=automated_click, args=(interval,))
t.daemon = True
t.start()
- Этот код отвечает за активацию клика. В переменные x и y записываются координаты, полученные из UI (x_entry.get() и y_entry.get()), и преобразуются в целые числа.
- Также извлекается значение интервала между кликами из поля ввода интервала (interval_entry.get()).
- Создается новый поток для выполнения функции automated_click, с передачей ему интервала как аргумента. Этот поток устанавливается как демон (t.daemon = True), что обеспечивает его автоматическое завершение при закрытии программы.
- Поток запускается с вызовом t.start(), инициируя процесс автоматического клика.
def stop_clicking():
global running
running = False
update_status("Статус: Остановлен")
update_timer("Время до клика: --")
- Функция для остановки автокликера.
def update_timer(text=""):
if text:
timer_label.config(text=text)
else:
timer_label.config(text=f"Время до клика: {time_left} сек.")
- Обновление таймера в пользовательском интерфейсе.
def track_cursor():
global tracking
if not tracking:
tracking = True
messagebox.showinfo("Отслеживание курсора", "Режим отслеживания курсора включен. Нажмите Ctrl+Alt+C для сохранения положения.")
keyboard.add_hotkey('ctrl+alt+c', save_cursor_position)
def save_cursor_position():
global tracking, x, y
if tracking:
x, y = pyautogui.position()
tracking = False
x_entry.delete(0, tk.END)
x_entry.insert(0, x)
y_entry.delete(0, tk.END)
y_entry.insert(0, y)
messagebox.showinfo("Координаты сохранены", f"Точка клика установлена на ({x}, {y}).")
keyboard.remove_hotkey('ctrl+alt+c')
keyboard.add_hotkey('ctrl+alt+s', track_cursor)
keyboard.add_hotkey('ctrl+alt+x', stop_clicking)
- Эти функции отвечают за отслеживание курсора мыши. Пользователь может активировать режим отслеживания курсора, а затем сохранить его положение в координатах x, y.