Capturer vos fenêtres avec un python !!!

Rédigé par BeHuman Aucun commentaire
Classé dans : Python Mots clés : aucun

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()

Écrire un commentaire

Quelle est la septième lettre du mot vwgdah9t ?

Fil RSS des commentaires de cet article