Code: Alles auswählen
xwd -name "My Window" -silent | xwdtopnm | pnmtopng > screenshot.png
Wäre nett, wenn mir jemand auf die Sprünge helfen könnte.
Code: Alles auswählen
xwd -name "My Window" -silent | xwdtopnm | pnmtopng > screenshot.png
Code: Alles auswählen
from subprocess import Popen, PIPE
def main():
out_file = open('test.png', 'wb')
pnmtopng = Popen(['pnmtopng'], stdin=PIPE, stdout=out_file)
xwdtopnm = Popen(['xwdtopnm'], stdin=PIPE, stdout=pnmtopng.stdin)
xwd = Popen(['xwd', '-root', '-silent'], stdout=xwdtopnm.stdin)
pnmtopng.wait()
out_file.close()
Im Grunde bin ich, was Python angeht, ein Neuling, und das Arbeiten mit subprocess ist für mich völliges Neuland; gelegentlich mal ein subprocess.call(), das war's. Aber das ändert sich ja gerade.BlackJack hat geschrieben:Also wenn Du jetzt ein Neuling wärst, hätte ich erst einmal gefragt, was Du für die Hausaufgabe denn bisher versucht hast.
Code: Alles auswählen
xwininfo -name "My Window"
Code: Alles auswählen
import -window 0x2e0000a -silent test.png
Oha, ich wusste gar nicht, dass das "klingelt". Ich nehme mal an, damit ist ein Sound aus dem PC-Lautsprecher des Mainboards gemeint, und den habe ich durch blacklisten bzw. deaktivieren von pcspkr immer stummgeschaltet.numerix hat geschrieben:@lunar: Danke für den Hinweis. Hat mich veranlasst, mir nochmal die möglichen Optionen von ImageMagicks "import" anzusehen und dann auch dort ein "-silent" zu entdecken. Das war mir bisher durchgegangen und weil mich das "klingeln" gestört hat, habe ich diesen Weg nicht weiter verfolgt.
Jo, siehe Code.Du meinst das?Daraus die Window-ID extrahieren und dann z.B.Code: Alles auswählen
xwininfo -name "My Window"
Code: Alles auswählen
import -window 0x2e0000a -silent test.png
Im Allgemeinen ist das möglich, ob das im Speziellen bei Tkinter so ist, weiß ich nicht. Frag am besten mal im Tkinter-Subforum nach, denn dein Problem ist ja jetzt eher "Wie finde ich mit Tk die X11-ID eines Fensters heraus?".Was ich will - s.o. - ist ein Screenshot aus einer Tkinter-Anwendung heraus, die sich selbst knipst. Gibt es eine Möglichkeit, die benötigte Window-ID anders zu ermitteln als über den Namen des Fensters?
Genau, und zwar einmal beim Aufruf von "import" und ein zweites Mal wenn der Screenshot fertiggestellt ist.lunar hat geschrieben:Oha, ich wusste gar nicht, dass das "klingelt". Ich nehme mal an, damit ist ein Sound aus dem PC-Lautsprecher des Mainboards gemeint
Hatte ich glatt übersehen - ich hatte nur die Stichwörter gelesen und selbst nachgedacht. Aber beruhigt mich zumindest, dass ich die richtige Idee hatte. Danke also für den Code!lunar hat geschrieben:Jo, siehe Code.