[Python] [Windows] Machen Sie eine Bildschirmaufnahme mit Python

Ich habe untersucht, wie Screenshots unter Windows automatisiert werden können. (Verwenden Sie diesmal Python)

Verwenden Sie PIL

Vorbereitungen

PIL(Pillow)Installation von


$ pip install Pillow

Es gab auch einen Pyscreenshot, aber für Windows ist die Implementierung dieselbe, da PIL schließlich intern verwendet wird.

Installieren Sie pyscreenshot


$ pip install pyscreenshot

Implementierungsbeispiel

Beispiel für eine Bildschirmaufnahme mit PIL


from PIL import ImageGrab

# full screen
ImageGrab.grab().save("PIL_capture.png ")

#Clipping innerhalb des angegebenen Bereichs
ImageGrab.grab(bbox=(100, 100, 200, 200)).save("PIL_capture_clip.png ")

Mit der obigen Implementierung können Sie Vollbild-Screenshots, Clipping und Ausgabe an Pig durchführen. Da PIL multifunktional ist, unterstützt es auch die Bildverarbeitung und das Speichern in einem anderen Format (JPEG usw.), aber ich denke, dass Sie es separat prüfen sollten.

Bei dieser Implementierung gab es jedoch zwei Probleme.

Referenz

The ImageGrab Module pyscreenshot 0.4.2 : Python Package Index

Verwenden Sie Selen

Es ist ein Problem, dass die PIL-Anwendung nicht angegeben werden kann. Wenn Sie jedoch einen Webbrowser angeben möchten, scheint es eine Möglichkeit zu geben, Selenium zu verwenden. (Nicht überprüft, da es nicht zu meinem Anwendungsfall passte)

Screenshot mit Selen (Python Edition) - Qiita Betreibe Firefox mit Selen aus Python und speichere Screenshots --Qiita How to take partial screenshot with Selenium WebDriver in python? - Stack Overflow

Verwenden Sie pywin auto

Eine andere Möglichkeit, eine Bildschirmaufnahme einer Anwendung zu erstellen, ist die Verwendung von "pywinauto".

Vorbereitungen

Installation von Pywinauto


$ pip install pywinauto

Anwendungsbeispiel

Beispiel für die Verwendung von Pywinauto


# coding: UTF-8

from pywinauto import application
from time import sleep

app = application.Application().start("notepad.exe")

sleep(1)
app[u'Ohne Titel.*Notizblock'].CaptureAsImage().save('window.png')

Sie haben jetzt einen Screenshot einer beliebigen Anwendung (im Beispiel Notepad). Als Einschränkung ruft CaptureAsImage den Zeichenpuffer nicht direkt ab, es scheint, dass es nur den Bereich abschneidet, in dem das Fenster vorhanden ist, und im obigen Beispiel vor dem Start, es sei denn, der Ruhezustand wird eingefügt. Die Erfassung wurde ausgeführt.

Referenz

Pywinauto - pywinauto What is pywinauto — pywinauto 0.6.0 documentation Klicken Sie in pywinauto auf das GUI-Menü: Salaryman, PC und ich

Recommended Posts

[Python] [Windows] Machen Sie eine Bildschirmaufnahme mit Python
Machen Sie einen Screenshot in Python
Drücken Sie einen Befehl in Python (Windows)
[Python] Machen Sie einen Screenshot
Erstellen Sie eine Funktion in Python
Erstellen Sie ein Wörterbuch in Python
Bis zum Zeichnen eines 3D-Diagramms mit Python in Windows 10
Erstellen Sie ein Lesezeichen in Python
Zeichne ein Herz in Python
Python-Installation in 2 Zeilen @Windows
Wahrscheinlich in einer Nishiki-Schlange (Originaltitel: Vielleicht in Python)
Schreiben Sie eine Dichotomie in Python
[Python] Mit Tkinter mehrere Fenster anzeigen
[Python] Verwalten Sie Funktionen in einer Liste
Erstellen Sie einen DI-Container mit Python
Zeichnen Sie eine Streudiagrammmatrix mit Python
Holen Sie sich Web-Screen-Capture mit Python
Schreiben Sie A * (A-Stern) -Algorithmen in Python
Erstellen Sie eine Binärdatei in Python
Windows 10: Installieren der MeCab-Bibliothek für Python
Löse ABC036 A ~ C mit Python
Schreiben Sie ein Kreisdiagramm in Python
Schreiben Sie das Vim-Plugin in Python
Schreiben Sie eine Suche mit Tiefenpriorität in Python
Implementierung eines einfachen Algorithmus in Python 2
Löse ABC037 A ~ C mit Python
Führen Sie einen einfachen Algorithmus in Python aus
Zeichnen Sie ein CNN-Diagramm in Python
Erstellen Sie eine zufällige Zeichenfolge in Python
Beim Schreiben eines Programms in Python
Wettbewerb mit VS-Code Erstellen Sie eine Python-Umgebung für Profis unter Windows
Sehen Sie sich die in Python 3.8.2 integrierte Ausnahmebaumstruktur an
Generieren Sie eine erstklassige Sammlung in Python
Mausbedienung mit Windows-API in Python
Verwenden Sie print in Python2 lambda expression
Ein einfacher HTTP-Client, der in Python implementiert ist
Führen Sie eine nicht rekursive Euler-Tour in Python durch
Verwenden von venv in der Windows + Docker-Umgebung [Python]
Ich habe ein Pay-Management-Programm in Python erstellt!
Vorsichtsmaßnahmen beim Beizen einer Funktion in Python
Zeigen Sie eine Liste der Alphabete in Python 3 an
Versuchen Sie, ein SYN-Paket in Python zu senden
Versuchen Sie, eine einfache Animation in Python zu zeichnen
Erstellen Sie eine einfache GUI-App in Python
Erstellen einer Python 3.6-Umgebung mit Windows + PowerShell
[Python] [Windows] Serielle Kommunikation in Python über DLL
Schreiben Sie eine kurze Eigenschaftsdefinition in Python
Mit Python Teil 2 ein Herz zeichnen (SymPy Edition)
Führen Sie den Python-Interpreter im Skript aus
Wie bekomme ich Stacktrace in Python?
Schreiben Sie ein Caesar-Verschlüsselungsprogramm in Python
Hash in Perl ist ein Wörterbuch in Python
Scraping von Websites mit JavaScript in Python
Schreiben Sie eine einfache Giermethode in Python
Starten Sie eine Flask-App in Python Anywhere
Holen Sie sich ein Zeichen für Conoha mit Python
Löse ABC165 A, B, D mit Python
[GPS] Erstellen Sie eine kml-Datei mit Python