Capturer vos fenêtres avec un python !!!
Rédigé par BeHuman
Aucun commentaire
Classé dans : Python

Salut à tous,
Le principal objectif été de créer une script qui me permmttent de capturer d'un coup toutes les fenêtre de mon bureau. Cela va me servir pour mon script de FleeX qui as subit de grosse modification, cependant il me manqué cette fonction pour publier la nouvelle version.
Le seul point qui sera à améliorer dans le futur est que le script utilise imageMagick et donc cela ajoute une dépendance qui serait bon de supprimer.
#!/usr/bin/python # -*- coding: utf-8 -*- import subprocess from gi.repository import Gtk, Wnck def main(): Gtk.main_iteration_do(True) screen = Wnck.Screen.get_default() screen.force_update() wins = screen.get_windows() for i in range(len(wins)): if not "Hud" in wins[i].get_name(): if not "unity" in wins[i].get_name(): if not "XdndCollectionWindowImp" in wins[i].get_name(): if not "Bureau" in wins[i].get_name(): wrealname= wins[i].get_name() wxid= wins[i].get_xid() wname=wrealname.replace('/','_SLASH_').replace(':','_2POINTS_').replace(' ','_SPACE_').replace('~','_TILDE_').replace('-','_TIRER_').replace('@','_AROBASE_').replace('(','_PARENTHESEOPEN_').replace(')','_PARENTHESECLOSE_').replace('{','_ACCOLADEOPEN_').replace('}','_ACCOLADECLOSE_').replace('[','_CROCHETOPEN_').replace(']','_CROCHETCLOSE_') wname=wname.replace('WnckWindow - ','') wname=wname+'@@'+str(wxid)+'.png' process = subprocess.Popen(['import', '-window', wrealname, 'png:-'], stdout=subprocess.PIPE) scshot = process.communicate()[0] with open(wname, 'wb') as out: out.write(scshot) if __name__ == '__main__': main()