Как сохранить несколько окон 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()
Пошаговое объяснение скрипта
-
Поиск экземпляров MS Paint: Функция
find_mspaint_instances()
ищет все запущенные процессы, связанные с MS Paint, и возвращает их идентификаторы (PID). -
Активация окна: Функция
bring_window_to_front(title)
активирует окно с указанным заголовком. -
Генерация имени файла:
generate_filename()
создает уникальное имя файла с текущей меткой времени. -
Сохранение файла: В функции
save_mspaint_file()
выполняются нажатия клавиш для вызова диалога сохранения и ввода имени файла. - Основная логика: В функции
main()
происходит поиск всех экземпляров MS Paint, их активация и сохранение содержимого.
Закрытие всех окон MS Paint
После того, как все ваши файлы будут сохранены, возможно, вам потребуется закрыть все окна MS Paint. Для этого вы можете использовать следующую команду в командной строке:
taskkill -f -im mspaint.exe
Заключение
Теперь вы знаете, как быстро и эффективно сохранить все открытые окна MS Paint с помощью простого сценария на Python. Это может значительно упростить вашу работу и сэкономить время. Надеемся, что этот метод вам пригодится!