Win32::Clipboard - Zugriff auf die Windows-Zwischenablage
Veröffentlicht von Thomas Fahle am (Permalink)
Win32::Clipboard von Jan Dubois ermöglicht den einfachen Zugriff auf die Windows-Zwischenablage.
Tipp: Unter Microsoft Windows kann der Inhalt der Zwischenablage über den Systemdienst Ablagemappe mit dem Programm %systemroot%\system32\clipbrd.exe eingesehen und auch verwaltet werden.
Text, Bitmaps und Dateilisten
In der Zwischenablage können sich Texte, Bitmaps oder Dateilisten befinden.
Diese drei Typen müssen unterschiedlich behandelt werden.
Win32::Clipboard kann alle drei Typen lesen; in der hier besprochenen Version 0.52 kann Win32::Clipboard nur Text in die Zwischenablage einfügen. Also keine Bitmaps oder Dateilisten.
Basics
Ein neues Objekt der Klasse Win32::Clipboard erzeugen
#!/usr/bin/perl use warnings; use strict; use Win32::Clipboard; my $clip = Win32::Clipboard();
und die installierte Version ausgeben:
# installierte Version print 'Win32::Clipboard Version: ', $clip->Version() , "\n";
Zwischenablage leeren
$clip->Empty();
Text lesen und bearbeiten
Text zur Zwischenablage hinzufügen
$clip->Set('Testtext für Zwischenablage');
Feststellen, ob sich Text in der Zwischenablage befindet
if ( $clip->IsText() ) { print "In der Zwischenablage befindet sich Text\n"; }
Textinhalt der Zwischenablage anzeigen
if ( $clip->IsText() ) { my $text = $clip->GetText(); print "Text in der Zwischenablage: $text\n"; }
Bitmaps lesen
Feststellen, ob sich in der Zwischenablage ein Bitmap befindet
if ( $clip->IsBitmap() ) { print "In der Zwischenablage befindet sich ein Bitmap\n"; }
Bitmap aus der Zwischenablage lesen und in eine Datei speichern
if ( $clip->IsBitmap() ) { my $image = $clip->GetBitmap(); open BITMAP,'>',"YouNameIt.bmp" or die $!; binmode BITMAP; print BITMAP $image; close BITMAP or die $!; }
Dateilisten lesen
Feststellen, ob sich in der Zwischenablage eine Dateiliste befindet
if ( $clip->IsFiles() ) { print "In der Zwischenablage befindet sich eine Dateiliste\n"; }
Dateiliste aus der Zwischenablage lesen und ausgeben
if ( $clip->IsFiles() ) { my @files = $clip->GetFiles(); foreach my $file (@files) { print "Datei: $file\n"; } }
Siehe auch