Это мой код:
Код: Выделить всё
import pyautogui
import cv2
import numpy as np
import time
import mss
import pygetwindow as gw
template_path = 'blue_icon.png'
app_title = "XXX" # Podaj dokładną nazwę okna aplikacji
def find_and_click_blue_icon():
# Pobierz okno aplikacji
app_window = gw.getWindowsWithTitle(app_title)
if not app_window:
print(f'Nie znaleziono aplikacji o nazwie: {app_title}')
return
app_window = app_window[0] # Zakładamy, że okno jest pierwsze na liście
# Przełącz na to okno
app_window.activate()
# Współrzędne okna aplikacji
left, top, width, height = app_window.left, app_window.top, app_window.width, app_window.height
# Zrzut ekranu z obszaru okna aplikacji
with mss.mss() as sct:
monitor = {"top": top, "left": left, "width": width, "height": height}
screenshot = sct.grab(monitor)
screenshot = np.array(screenshot)
screenshot = cv2.cvtColor(screenshot, cv2.COLOR_BGRA2BGR)
# Wczytanie obrazu niebieskiego znaczka
template = cv2.imread(template_path, cv2.IMREAD_COLOR)
# Dopasowanie wzorca
result = cv2.matchTemplate(screenshot, template, cv2.TM_CCOEFF_NORMED)
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(result)
# Kliknięcie, jeśli dopasowanie jest wysokie
if max_val > 0.2:
icon_x, icon_y = max_loc
icon_center_x = left + icon_x + template.shape[1] // 2 # Dodaj lewą krawędź okna
icon_center_y = top + icon_y + template.shape[0] // 2 # Dodaj górną krawędź okna
pyautogui.click(icon_center_x, icon_center_y)
# Główna pętla programu
while True:
find_and_click_blue_icon()
time.sleep(0.4)
Подробнее здесь: https://stackoverflow.com/questions/790 ... the-screen