Почему функция заставляет стрелку мыши двигаться вверх экрана?

У меня возникла проблема. Я хотел запустить код, чтобы проверить работает ли он, но в одной функции появились трудности. Функция должна была найти шаблон на скриншоте снятого с экрана и кликнуть посередине, но она вместо этого в бесконечном цикле двигает стрелку мыши вверх и нажимает правую клавишу мыши. Я пробовал добавить кнопку для остановки цикла, но она не работает, и цикл продолжал работать. Кто-нибудь сталкивался с такой проблемой? Если да, то напишите, как вы её решили. Вот код:

def right_click(sample_path):
    sample = cv2.imread(sample_path, cv2.IMREAD_GRAYSCALE)
    array = np.array(sample)
    width, height = sample.shape[::-1]
    windows = gw.getAllWindows()
    window = None
    for window in windows:
        if window.title == 'D3DWindower_1.88':
            window.maximize()
            break

    while True:
        with mss() as sct_inner1:
            monitor = {'top': window.top, 'left': window.left, 'width': window.width, 'height': window.height}
            screenshot = np.array(sct_inner1.grab(monitor))
            screen = cv2.cvtColor(screenshot, cv2.COLOR_BGR2GRAY)
            print("Начало поиска шаблона")
            # Сопоставление шаблона
            res = cv2.matchTemplate(screen, array, cv2.TM_CCORR_NORMED)
            if np.max(res) >= 0.1:
                loc = np.where(res >= 0.1)
                for pt in zip(*loc[::-1]):
                    click_position1 = (pt[0] + width // 2, pt[1] + height // 2)
                    pydirectinput.rightClick(click_position1[0], click_position1[1])
                break
        if keyboard.is_pressed(stop_key):  # Проверяем, была ли нажата клавиша для остановки
            print("Код остановлен по запросу пользователя")
            break

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