Помогите разобраться как скрипт находит окно для автокликера?

import threading, time
import win32api, win32con, win32gui
import pyautogui as pag
import keyboard as kb
import tkinter as tk
def get_window_at_mouse_pos():
    x, y = win32api.GetCursorPos()
    window_id = win32gui.WindowFromPoint((x, y))
    return window_id
def send_key(key_code, window_handle):
#    win32api.SendMessage(window_handle, win32con.WM_CHAR, key_code, 0)
#    win32api.PostMessage(window_handle, win32con.WM_CHAR, key_code, 0)
    pag.press(chr(key_code))
    print(key_code)
def mining():
    while True:
        time.sleep(1)
        while is_e.get() == 1:
            send_key(ord('e'), window_handle)
            time.sleep(3)
            send_key(ord('q'), window_handle)
            time.sleep(65)
root = tk.Tk()
canvas1 = tk.Canvas(root, width=300, height=200, bg='lightsteelblue2', relief='raised')
canvas1.pack()
is_e = tk.IntVar()
checkbox = tk.Checkbutton(root, text="Капать", variable=is_e, font=('helvetica', 18))
canvas1.create_window(150, 160, window=checkbox)
win32gui.MessageBox(None, 'start', 'Message Box', 0)
window_handle = get_window_at_mouse_pos()
print(window_handle)
win32gui.SetForegroundWindow(window_handle) # hwnd
threading.Thread(target=mining, daemon=True).start()
root.mainloop()

Делал автокликер для игры, вот относительно универсальное простое решение.

Чтобы не мучится в начале выскакивает окошко - тащишь его чтобы было над нужным окном и жми "ОК", далее скрипт копает и подбирает даже в неактивном окне...

Но я не могу разобратсья в его работе и как скрипт отслеживает окно и помогите пожалуйста настроить чтобы скрипт работал не постоянно а 1 раз при нажатии на кнопку F5


Ответы (1 шт):

Автор решения: Python Tasteless
  1. Как находит окно для автокликера (твой же код):
def get_window_at_mouse_pos():
    x, y = win32api.GetCursorPos()
  1. Не пиши стартовый исполняющий код вне первоначального условного блока:
if __name__ == "__main__":
    ...  # Здесь пиши код запуска скрипта
  1. Для удобной структуризации вынеси инициализацию окна в отдельную функцию
→ Ссылка