Programmieren der Zwischenablage mit VB

Lies in den Artikel rein und unten bekommst Du ein unschlagbares Angebot!

Unter VBA war das Zugreifen auf die Inhalte der Zwischenablage mit dem Einsatz einiger API-Funktionen verbunden. Unter VB und .NET gelingt das wesentlich einfacher. Dieser Artikel zeigt, wie Sie Inhalt in die Zwischenablage kopieren, den Inhalt der Zwischenablage auslesen und weitere Funktionen nutzen wie etwa das Ermitteln des Typs des Inhalts der Zwischenablage.

Die ClipBoard-Klasse

Die ClipBoard-Klasse ist das Herzstück der nachfolgend vorgestellten Techniken. Da die Zwischenablage computerweit genutzt wird, also auch von anderen Programmen und auch von Windows selbst, referenzieren wir die ClipBoard-Klasse über My.Computer. My ist eine Funktion, die einen einfachen Zugriff auf verschiedene Klassen bietet, die sich auf den Computer, die Anwendung, Einstellungen, Ressourcen und so weiter beziehen.

Wir referenzieren über My die Computer-Klasse, die uns auch die ClipBoard-Klasse zur Verfügung stellt. Die ClipBoard-Klasse bietet wiederum die folgenden Möglichkeiten – in alphabetischer Reihenfolge:

  • Clear: Leert den Inhalt der Zwischenablage. Vorsicht, da die Zwischenablage ja auch von anderen Anwendungen genutzt wird!
  • ContainsAudio: Gibt an, ob die Zwischenablage WaveAudio-Inhalt enthält.
  • ContainsData(<String>): Gibt an, ob die Zwischenablage Daten des mit dem Parameter String angegebenen Typs enthält. Beispielwerte für den Parameter sind Bitmap, StringFormat, WaveAudio et cetera.
  • ContainsFileDropList: Gibt an, ob die Zwischenablage Daten im FileDrop-Format enthält.
  • ContainsImage: Gibt an, ob sich in der Zwischenablage Daten im Bitmap-Format befinden.
  • ContainsText: Gibt an, ob die Zwischenablage Text enthält.
  • ContainsText(Optional <TextDataFormat>): Überladung von ContainsText. Gibt an, ob die Zwischenablage Text enthält. Der optionale Parameter ermöglicht eine genauere Prüfung des Inhalts. Hier gibt es die folgenden Werte: Text (0), UnicodeText (1), Rtf (2), Html (3), CommaSeparatedValue (4)
  • GetAudioStream: Liefert einen in der Zwischenablage gespeicherten Audiostream.
  • GetData(<String>): Liefert den Inhalt der Zwischenablage in dem mit dem Parameter String angegebenen Format.
  • GetDataObject: Ruft die Daten der Zwischenablage ab — unabhängig vom Typ.
  • GetFileDropList: Ruft einen oder mehrere Dateinamen aus der Zwischenablage ab.
  • GetImage: Ruft ein Bild aus der Zwischenablage ab.
  • GetText: Ruft Text aus der Zwischenablage ab.
  • GetText(<TextDataFormat>): Überladung von GetText. Ruft Text im angegebenen Textformat ab. Hier gibt es die folgenden Werte: Text (0), UnicodeText (1) , Rtf (2), Html (3), CommaSeparatedValue (4)
  • SetAudio(<Byte[]>): Fügt ein Byte-Array im WaveAudio-Format als Stream hinzu.
  • SetAudio(<Stream>): Überladung von SetAudio. Fügt den mit dem Parameter referenzierten Stream im WaveAudio-Format hinzu.
  • SetData(<String>, <Object>): Fügt die Daten aus dem Parameter Object im mit dem Parameter String angegebenen Format in die Zwischenablage ein.
  • SetDataObject(<Object>): Fügt ein Objekt in die Zwischenablage ein. Dieses Objekt ist nur temporär bis zum Beenden der auslösenden Anwendung in der Zwischenablage verfügbar.
  • SetDataObject(<Object>, ): Überladung von SetDataObject. Der Parameter Boolean gibt an, ob die in die Zwischenablage eingefügten Daten auch nach dem Beenden der Anwendung noch in der Zwischenablage verfügbar sein sollen.
  • SetDataObject(<Object>, , , ): Überladung von SetDataObject. Die beiden Int32-Parameter geben an, wie oft versucht wird, <Object> in die Zwischenablage zu übertragen und in welchem zeitlichen Abstand.
  • SetFileDropList(StringCollection): Fügt eine Liste von einem oder mehreren Dateipfaden in einer StringCollection zur Zwischenablage hinzu.
  • SetImage(<Image>): Fügt ein Objekt des Datentyps Bitmap zur Zwischenablage hinzu.
  • SetText(<String>): Fügt einen Text zur Zwischenablage hinzu.
  • SetText(<String>, ): Überladung von SetText. Fügt einen Text mit dem in TextDataFormat angegebenen Format zur Zwischenablage hinzu.

Text in der Zwischenablage

Das Hinzufügen von Text in die Zwischenablage ist schnell erledigt. In einem Beispielprojekt haben wir dazu ein Textfeld namens txtText und eine Schaltfläche namens btnInZwischenablage hinzugefügt:

<Button x:Name="btnInZwischenablage" Click="BtnInZwischenablage_Click">In Zwischenablage</Button>
<Label>Text:</Label>
<TextBox x:Name="txtZwischenablage" Width="200"></TextBox>

Ein Klick auf die Schaltfläche btnInZwischenablage soll den aktuellen Inhalt des Textfeldes txtZwischenablage in die Zwischenablage kopieren, was wir so realisieren:

Private Sub BtnInZwischenablage_Click(sender As Object, e As RoutedEventArgs)
     Clipboard.SetText(txtZwischenablage.Text)
End Sub

Das Ergebnis sehen Sie in Bild 1.

Text aus einem Textfeld in die Zwischenablage kopieren

Bild 1: Text aus einem Textfeld in die Zwischenablage kopieren

Text aus der Zwischenablage abrufen

Wenn Sie den soeben in der Zwischen-ablage gespeicherten Text oder einen anderen in der Zwischenablage gespeicherten Text auslesen wollen, verwenden Sie die Methode GetText.

Eine zweite Schaltfläche namens btnAusZwischenablage soll den Inhalt der Zwischenablage in das Textfeld kopieren. Dazu verwenden wir schlicht die Methode GetText der ClipBoard-Klasse:

Private Sub BtnAusZwischenablage_Click(sender As Object, e As RoutedEventArgs)
     txtZwischenablage.Text = Clipboard.GetText
End Sub

Damit wird allerdings der komplette Inhalt des Textfeldes überschrieben. Um den Inhalt der Zwischenablage an der Position der Einfügemarke einzufügen beziehungsweise anstelle des aktuell markierten Textes, verwenden Sie die folgende Anweisung:

 

Schreibe einen Kommentar