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