Код Python зависает после вызова pyautogui

Я хочу автоматизировать некоторые клики в Windows. Я использую pyautogui для этого.

Но когда мой код встречает pyautogui.click(...), он выполняет его и после этого не выполняет никакого другого кода, кроме pyautogui.

Когда я запускаю этот код (я запускаю его через cmd с python myFile.py):

import pyautogui

print("Hello, World!")
pyautogui.click(500, 500)
print("Hello, World! x2")

Он выводит:

Привет, мир!

А то там только мигает _

Если я нажму любую кнопку (например, Enter), она выводит Hello, World! x2 и возвращает мне управление (так что я могу ввести любую другую команду, например, cls, dir и т. д.).

Итак, вместо (Способ № 1):

  1. Вывод Привет, мир!
  2. Нажмите с координатами
  3. Вывод Привет, мир! х2
  4. Завершить выполнение

Он делает (способ № 2):

  1. Вывод Привет, мир!
  2. Нажмите с координатами
  3. Пауза, пока я не нажму кнопку.

Почему это? Что я должен сделать, чтобы запустить код Way # 1?

Кстати, если я напишу:

import pyautogui

print("Hello, World!")
pyautogui.click(500, 500)
pyautogui.click(600, 600)
print("Hello, World! x2")

Он действительно щелкает два раза, а затем так же зависает.


person Natoly    schedule 13.11.2020    source источник


Ответы (1)


Просто убедитесь, что щелчок находится за пределами окна командной строки. Для этого вы можете использовать pyautogui.mouseDown в паре с pyautogui.dragRel.

Итак, что там происходит на самом деле? Если щелкнуть в окне командной строки, запустится режим выбора, и код будет работать в фоновом режиме, пока не будет нажата клавиша. Подробнее о том, что происходит на самом деле .

Я предполагаю, что вы хотите что-то автоматизировать. Я предлагаю: сделать .bat для вашего .py файла; затем используйте pyinstaller из командной строки, чтобы создать файл .exe, и запланируйте его запуск так часто, как вам нужно. Вы можете следовать этому руководству.

person niamulbengali    schedule 26.11.2020