=head1 NOM Win32::Clipboard - Interaction avec le Presse-Papiers de Windows. =head1 SYNOPSIS use Win32::Clipboard; $CLIP = Win32::Clipboard(); print "Le Presse-Papiers contient : ", $CLIP->Get(), "\n"; $CLIP->Set("du texte à copier dans le Presse-Papiers"); $CLIP->Empty(); $CLIP->WaitForChange(); print "Le Presse-Papiers a changé !\n"; =head1 DESCRIPTION Ce module vous permet d'interagir avec le presse-papiers de Windows: vous pouvez obtenir son contenu, le changer, le vider, ou laisser votre script dormir jusqu'à ce qu'il change. Cette version supporte 3 formats pour les données du Presse-Papiers : =over 4 =item * texte (C) Le presse-papiers contient du texte; c'est le B format que vous pouvez utiliser pour mettre des données dans le presse-papiers; vous l'obtenez en une seule chaîne. Exemple: $text = Win32::Clipboard::GetText(); print $text; =item * bitmap (C) Le presse-papiers contient une image, ou un bitmap ou une image copiés dans le presse-papiers depuis une application graphique. La donnée que vous obtenez est un tampon binaire prêt à être écrit dans un fichier bitmap (format BMP). Exemple: $image = Win32::Clipboard::GetBitmap(); open BITMAP, ">some.bmp"; binmode BITMAP; print BITMAP $image; close BITMAP; =item * liste de fichiers (C) Le presse-papiers contient des fichiers copiés ou coupés depuis une application de type Explorateur; vous obtenez une liste de noms de fichiers. Exemple: @files = Win32::Clipboard::GetFiles(); print join("\n", @files); =back =head2 RÉFÉRENCE Toutes les fonctions peuvent être utilisées soit avec leur nom complet (ex. B) ou bien comme méthodes d'un objet C. Pour la syntaxe, reportez-vous à la rubrique L ci-dessus. Notez aussi que vous pouvez créer un objet presse-papiers et fixer son contenu en même temps: $CLIP = Win32::Clipboard("blah blah blah"); ou, avec la manière moins commune : $CLIP = new Win32::Clipboard("blah blah blah"); Si vous préférez, vous pouvez même lier le Presse-papiers à une variable comme ceci: tie $CLIP, 'Win32::Clipboard'; print "Contenu du presse-papier : $CLIP\n"; $CLIP = "du text à copier dans le presse-papier..."; Dans ce cas, vous pouvez aussi accéder aux autres méthodes en utilisant la fonction tied() : tied($CLIP)->Empty; print "image saisie" if tied($CLIP)->IsBitmap; =over 4 =item Empty() Vide le presse-papiers. =for html

=item EnumFormats() Retourne un tableau d'identificateurs décrivant le format des données disponibles dans le presse-papiers. Les formats peuvent être standards (comme décrits dans la section L) ou spécifiques à une application. Voyez aussi IsFormatAvailable(). =for html

=item Get() Retourne le contenu du presse-papiers; notez que le résultat dépend de la nature des données contenues dans le presse-papiers; pour vous assurer d'obtenir uniquement le format désiré, vous devriez utiliser GetText() , GetBitmap() ou GetFiles() à la place. En fait, Get() est implémenté comme : if( IsBitmap() ) { return GetBitmap(); } elsif( IsFiles() ) { return GetFiles(); } else { return GetText(); } Voir aussi IsBitmap() , IsFiles() , IsText() , EnumFormats() et IsFormatAvailable() pour vérifier le format des données du presse-papiers avant de les obtenir. =for html

=item GetAs(FORMAT) Retourne le contenu du presse-papiers dans le FORMAT désiré (qui peut être donné par une des constantes définies dans la section L ou être un format personnalisé). Notez que les seuls identificateurs significatifs sont C , C et C; tout autre format est traité comme une chaîne. =for html

=item GetBitmap() Retourne le contenu du presse-papiers comme une image, ou C en cas d'erreur. =for html

=item GetFiles() Retourne le contenu du presse-papiers comme une liste de noms de fichiers, ou C en cas d'erreur. =for html

=item GetFormatName(FORMAT) Retourne le nom du format personnalisé du presse-papiers spécifié, ou C en cas d'erreur. Notez que vous ne pouvez pas obtenir le nom des formats standards (décrits dans la section L). =for html

=item GetText() Retourne le contenu du presse-papiers comme une chaîne, ou C en cas d'erreur. =for html

=item IsBitmap() Retourne une valeur booléenne indiquant su le presse-papiers contient une image. Voir aussi GetBitmap() . =for html

=item IsFiles() Retourne une valeur booléenne indiquant si le presse-papiers contient une liste de fichiers. Voir aussi GetFiles() . =for html

=item IsFormatAvailable(FORMAT) Vérifie si les données du presse-papiers coïncident avec le FORMAT spécifié (une des constantes décrites dans la section L; retourne zéro si les données ne correspondent pas, une valeur non nulle s'il y a coïncidence. =for html

=item IsText() Retourne une valeur booléenne indiquant si le presse-papiers contient du texte. Voir aussi GetText() . =for html

=item Set(VALUE) Donne au presse-papier le contenu de la chaîne spécifiée. =for html

=item WaitForChange([TIMEOUT]) Cette fonction arrête le script jusqu'à ce que le contenu du presse-papiers change. Si vous spécifiez un C (en millisecondes), la fonction retournera quand ce délai sera passé, même si le contenu du presse-papiers n'a pas changé. Si aucune valeur n'est donnée, elle attendra éternellement. Renvoie 1 si le presse-papiers a changé, C en cas d'erreur. =back =head2 CONSTANTES Ces constantes sont les formats standards du presse-papiers reconnu par Win32::Clipboard: CF_TEXT 1 CF_DIB 8 CF_HDROP 15 Les formats suivants B par Win32::Clipboard; néanmoins, ce sont des constantes exportées par le module et elles peuvent être utilisées avec les fonctions EnumFormats() , IsFormatAvailable() et GetAs() : CF_BITMAP 2 CF_METAFILEPICT 3 CF_SYLK 4 CF_DIF 5 CF_TIFF 6 CF_OEMTEXT 7 CF_PALETTE 9 CF_PENDATA 10 CF_RIFF 11 CF_WAVE 12 CF_UNICODETEXT 13 CF_ENHMETAFILE 14 CF_LOCALE 16 =head1 AUTEUR Aldo Calpini > Portage XS original par Gurusamy Sarathy >. =head1 VERSION FRANÇAISE Cette traduction française correspond à la version anglaise distribuée avec perl 5.6.1. Pour en savoir plus concernant ces traductions, consultez http://www.enstimac.fr/Perl/ . =head1 TRADUCTION EN FRANÇAIS Jean-Louis Morel =cut