Программное сворачивание окон с Python и Pyautogui

В сегодняшней статье мы рассмотрим создание скрипта для сворачивания всех окон на экране вашего компьютера. Нам понадобится Python и библиотека Pyautogui, а также одно изображение. Программа будет выполняться в цикле for, n — количество раз. Мы будет имитировать клик мышки, программно, по заданной области.

Для работы программы нам понадобится скриншот. Делаем скриншот экрана и вырезаем необходимую область. В нашем случае это кнопка сворачивания окон. Изображение должно находиться в отдельной папке, например MyProjects.

Программное сворачивание окон с Python и Pyautogui

Далее устанавливаем саму библиотеку.


pip install pyautogui

Создаем файл с расширением .py:


# импорт  библиотеки
import pyautogui

# строка позволяет остановить выполнение скрипта, переместив курсор мыши в левый верхний угол
pyautogui.FAILSAFE = True

#button7location = pyautogui.locateOnScreen('MyProjects/bbb.png', grayscale=True)
#функция ищет первое попавшееся совпадение с изображением bbb.png, на экране

#функция ищет все попавшееся совпадения на экране
#button8location = pyautogui.locateAllOnScreen('MyProjects/bbb.png', grayscale=True)

# создаем функцию для однократному нажатию  искомой области
def find_click():
        #находим координаты изображения на экране и распаковываем их
        button7location = pyautogui.locateOnScreen('MyProjects/bbb.png', grayscale=True)
        x, y, z, h = button7location
        # нас интересует x и  y
        # z, h - это размеры искомого элемента
        # далее перемещаем курсор к координатам 
        pyautogui.moveTo(x, y, duration = 2)
        
        # программно нажимаем на данную область
        pyautogui.click(x, y)

# создаем цикл с многократным повторением
for с in range(200):
  # получаем кортеж  из всех координат найденных на экране элементов 
  button8location = pyautogui.locateAllOnScreen('MyProjects/bbb.png', grayscale=True)
  pyautogui.PAUSE = 0.5 # установка паузы 
  # повторяем операцию программного нажатия i раз, исходя из количества найденных совпадений, здесь длины списка координат
  for i in range(len(list(button8location))):
      print(i)
      find_click()
        
# Все открытые окна будут сворачиваться до тех пор пока цикл программы не остановится.
# Закрыть данную программу можно сочитанием клавиш Ctrl+C в консоли

Таким образом, с помощью Python и pyautogui мы можем сворачивать окна всех открытых программ.

Источник