Как сохранить все открытые окна MS Paint одновременно: пошаговое руководство

Как сохранить несколько окон MS Paint одновременно на Windows 11

Если вы работаете в MS Paint и вдруг столкнулись с ситуацией, когда у вас открыто дюжина окон, вам может быть интересно, как сохранить все изображения сразу, не тратя время на каждое окно по отдельности. В этой статье мы рассмотрим, как это сделать с помощью простого сценария на Python, который автоматизирует процесс сохранения.

Подготовка к использованию скрипта

Для начала вам потребуется установить несколько библиотек Python, которые позволят вашему скрипту взаимодействовать с окнами MS Paint и управлять ими. Убедитесь, что у вас установлен Python 3.12.8 или выше. Для установки необходимых библиотек выполните следующую команду в вашем терминале:

pip install psutil==6.1.1 pyautogui==0.9.54 pygetwindow==0.0.9

Как работает скрипт

Теперь давайте разберём сам скрипт. Он находит все открытые экземпляры MS Paint, активирует каждое окно и сохраняет его содержимое в виде изображения.

import psutil
import pyautogui
import pygetwindow as gw
import time
from datetime import datetime

def find_mspaint_instances():
    instances = []
    for proc in psutil.process_iter(attrs=['pid', 'name']):
        if proc.info['name'] and 'mspaint.exe' in proc.info['name'].lower():
            instances.append(proc.info['pid'])
    return instances

def bring_window_to_front(title):
    try:
        window = gw.getWindowsWithTitle(title)
        if window:
            window[0].activate()
            return True
    except Exception as e:
        print(f"Error bringing window to front: {e}")
    return False

def generate_filename():
    timestamp = datetime.now().strftime("%Y-%m-%d_%H-%M-%S-%f")[:-3]
    return f"{timestamp}.png" 

def save_mspaint_file():
    time.sleep(1)  # Allow time for the window to activate
    pyautogui.hotkey("ctrl", "s")  
    time.sleep(2)  # Wait for the Save dialog to open

    filename = generate_filename()  
    pyautogui.write(filename) 
    time.sleep(1)

    pyautogui.press("enter")  
    time.sleep(2)  

    print(f"Saved as: {filename}")

def main():
    instances = find_mspaint_instances()

    if not instances:
        print("No running instances of MS Paint found.")
        return

    print(f"Found {len(instances)} instance(s) of MS Paint.")

    for window in gw.getWindowsWithTitle("Untitled - Paint") + gw.getWindowsWithTitle("Paint"):
        if bring_window_to_front(window.title):
            print(f"Saving: {window.title}")
            save_mspaint_file()

if __name__ == "__main__":
    main()

Пошаговое объяснение скрипта

  1. Поиск экземпляров MS Paint: Функция find_mspaint_instances() ищет все запущенные процессы, связанные с MS Paint, и возвращает их идентификаторы (PID).

  2. Активация окна: Функция bring_window_to_front(title) активирует окно с указанным заголовком.

  3. Генерация имени файла: generate_filename() создает уникальное имя файла с текущей меткой времени.

  4. Сохранение файла: В функции save_mspaint_file() выполняются нажатия клавиш для вызова диалога сохранения и ввода имени файла.

  5. Основная логика: В функции main() происходит поиск всех экземпляров MS Paint, их активация и сохранение содержимого.

Закрытие всех окон MS Paint

После того, как все ваши файлы будут сохранены, возможно, вам потребуется закрыть все окна MS Paint. Для этого вы можете использовать следующую команду в командной строке:

taskkill -f -im mspaint.exe

Заключение

Теперь вы знаете, как быстро и эффективно сохранить все открытые окна MS Paint с помощью простого сценария на Python. Это может значительно упростить вашу работу и сэкономить время. Надеемся, что этот метод вам пригодится!

Источник

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *