ABOUT Visual Basic Programmieren Programmierung Download Downloads Tips & Tricks Tipps & Tricks Know-How Praxis VB VBA Visual Basic for Applications VBS VBScript Scripting Windows ActiveX COM OLE API ComputerPC Microsoft Office Microsoft Office 97 Office 2000 Access Word Winword Excel Outlook Addins ASP Active Server Pages COMAddIns ActiveX-Controls OCX UserControl UserDocument Komponenten DLL EXE
Diese Seite wurde zuletzt aktualisiert am 08.01.2001

Diese Seite wurde zuletzt aktualisiert am 08.01.2001
Aktuell im ABOUT Visual Basic-MagazinGrundlagenwissen und TechnologienKnow How, Tipps und Tricks rund um Visual BasicActiveX-Komponenten, Controls, Klassen und mehr...AddIns für die Visual Basic-IDE und die VBA-IDEVBA-Programmierung in MS-Office und anderen AnwendungenScripting-Praxis für den Windows Scripting Host und das Scripting-ControlTools, Komponenten und Dienstleistungen des MarktesRessourcen für Programmierer (Bücher, Job-Börse)Dies&Das...

Themen und Stichwörter im ABOUT Visual Basic-Magazin
Code, Beispiele, Komponenten, Tools im Überblick, Shareware, Freeware
Ihre Service-Seite, Termine, Job-Börse
Melden Sie sich an, um in den vollen Genuss des ABOUT Visual Basic-Magazins zu kommen!
Informationen zum ABOUT Visual Basic-Magazin, Kontakt und Impressum

Zurück...

Zwischenablagen-Esperanto

Zurück...


Anzeige

(-hg) mailto:hg_clipboardpropertybag@aboutvb.de

Sie suchen nach einer Möglichkeit, nahezu beliebige Daten und sogar Objekte in einem eigenen Format der Zwischenablage ablegen und auch wieder aus dieser auslesen zu können? Dazu gibt es eine Reihe von API-Funktionen, die jedoch aus Visual Basic-Sicht nicht ganz einfach handzuhaben sind. Und es gibt das VB-PropertyBag-Objekt, das Sie ab Visual Basic 6 selbst instanzieren können.

Wenn Ihnen ein paar wenige Zeilen Code und reine Bordmittel recht sind, sollten Sie sich einfach das folgende einmal anschauen:

Public Sub ClipboardSetPropertyBag(PropBag As PropertyBag, _
 ID As Variant)

  Dim nString As String
  Dim nBytes() As Byte
  
  PropBag.WriteProperty "§ID§", ID
  nBytes = PropBag.Contents
  nString = nBytes
  nString = StrConv(nString, vbUnicode)
  nString = Replace(nString, vbNullChar, "§%§%§%§%§%§%§%§%")
  With Clipboard
    .Clear
    .SetText nString, vbCFText
  End With
End Sub

Public Function ClipboardSetPropertyBag(ID As Variant) _
 As PropertyBag

  Dim nPropBag As PropertyBag
  Dim nString As String
  Dim nBytes() As Byte
  Dim nVar As Variant
  
  nString = Clipboard.GetText(vbCFText)
  nString = Replace(nString, "§%§%§%§%§%§%§%§%", vbNullChar)
  nString = StrConv(nString, vbFromUnicode)
  nBytes = nString
  nVar = nBytes
  Set nPropBag = New PropertyBag
  On Error Resume Next
  If Err.Number = 0 Then
    nBag.Contents = nBytes
    If nPropBag.ReadProperty("§ID§") = ID Then
      Set ClipboardSetPropertyBag = nPropBag
    Else
      MsgBox "Ungültiges Format!"
    End If
  End If
End Function

Der ganze Trick besteht darin, den als Byte-Array gelieferten bzw. benötigten Inhalt des PropertyBag-Objekts zwischenzeitlich in einen String zum Transport über die Zwischenablage zu überführen. Den Byte-Array-Inhalt des Sammel-PropertyBag-Objekts weisen Sie zunächst einfach einem String zu bzw. weisen den aus der Zwischenablage kommenden String über eine Zwischenstation als Byte-Array wieder einem PropertyBag-Objekt zu. Damit der Weg über den String funktioniert, ist zusätzlich seine Konvertierung ins Unicode-Format und wieder zurück notwendig. Und da der Unicode-String Nullzeichen enthält, die die Zwischenablage in C-Manier zum Kappen des Strings veranlassen, tauschen Sie die Nullzeichen zuvor noch gegen eine "unmögliche" Zeichenfolge aus und restaurieren die Nullzeichen hinterher wieder.

Damit Sie den Inhalt eines so transferierten PropertyBag-Objekts identifizieren können, fügen Sie vor dem Transfer einen ID-Wert (String, Zahl, GUID oder was auch immer) hinzu und prüfen, ob sich das gerade abgeholte PropertyBag-Objekt mit dieser ID zu erkennen geben kann.


Modul modClipboardPropertyBag (modClipboardPropertyBag.bas - ca. 1,3 KB)


Artikel
Zum Download-Bereich dieses Artikel
Mail an den Autor dieses Artikels

KnowHow
Zur KnowHow-Übersicht

KnowHow-Themen
Themen - Allgemeines
Themen - Entwicklungsumgebung (VB-IDE)
Themen - Forms
Themen - Steuerelemente (Controls)
Themen - Grafik
Themen - Dateien
Themen - UserControls
Themen - Einsteiger-Tipps
Themen - Wussten Sie...?

Übersicht nach Titeln in alphabetischer Reihenfolge
Übersicht nach Erscheinungsdatum

Schnellsuche




Zum Seitenanfang

Copyright © 1999 - 2017 Harald M. Genauck, ip-pro gmbh  /  Impressum

Zum Seitenanfang

Zurück...

Zurück...

Download Internet Explorer