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

 

Weitere Posts