vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2014
 
zurück
Rubrik: Windows/System22.03.05
GetClipboardData-Funktion

Diese Funktion ermittelt die Daten eines angegeben Formats in der Zwischenablage.

Betriebssystem:  Win95, Win98, WinNT 3.1, Win2000, WinMEViews:  7.090 

Deklaration:

 Declare  Function  GetClipboardData  Lib  "user32"  ( ByVal wFormat As Long ) As Long

Beschreibung:
Diese Funktion ermittelt die Daten eines angegeben Formats in der Zwischenablage.

Parameter:
wFormatErwartet die Format-ID des Formats, dessen Daten ermittelt werden sollen.

wFormat Konstanten:

Const CF_BITMAP = 2
' Das Objekt in der Zwischenablage ist ein Handle eines Bitmaps
 
Const CF_DIB = 8
' Das Objekt in der Zwischenablage ist ein Handle zu einer BITMAPINFO-Struktur
 
Const CF_DIBV5 = 17
' ( Win  2000/XP )  Das Objekt in der Zwischenablage ist ein Handle zu einer BITMAPV5HEADER-Struktur
 
Const CF_DIF = 5
' Das Objekt in der Zwischenablage ist ein "Software Arts"
 
Const CF_DSPBITMAP = &H82
' Das Objekt in der Zwischenablage ist ein Handle zu einem Bitmap in einem n-Format
 
Const CF_DSPENHMETAFILE = &H8E
' Das Objekt in der Zwischenablage ist ein Handle zu einer Enhanced Metadatei in einem n-Format
 
Const CF_DSPMETAFILEPICT = &H83
' Das Objekt in der Zwischenablage ist Handle zu einer Meta Grafik in einem n-Format
 
Const CF_DSPTEXT = &H81
' Das Object in der Zwischenablage ist ein Handle zu einem String in einem n-Format
 
Const CF_ENHMETAFILE = 14
' Das Objekt in der Zwischenablage ist ein Handle zu einer Enhanced Metadatei
 
Const CF_GDIOBJFIRST = &H300
' Das Objekt in der Zwischenablage ist ein GID-Object (Wird beim Leeren der Zwischenablage nicht gelöscht)
 
Const CF_GDIOBJLAST = &H3FF
' Das Objekt in der Zwischenablage ist ein GID-Object (Wird beim Leeren der Zwischenablage nicht gelöscht)
 
Const CF_HDROP = 15
' Das Objekt in der Zwischenablage ist eine Liste von Dateihandles
 
Const CF_LOCALE = 16
' Das Objekt in der Zwischenablage ist eine Sprach-ID, die für Text-Strings in der Zwischenablage benutzt wurde
 
Const CF_METAFILEPICT = 3
' Das Object in der Zwischenablage ist ein Handle zu einem Metafile Bild
 
Const CF_OEMTEXT = 7
' Das Objekt in der Zwischenablage ist ein Handle zu einem OEM-String
 
Const CF_OWNERDISPLAY = &H80
' Das Objekt in der Zwischenablage ist ein benutzerdefinierter Anzeigetyp
 
Const CF_PALETTE = 9
' Das Objekt in der Zwischenablage ist ein Handle zu einer Palette
 
Const CF_PENDATA = 10
' Das Objekt der Zwischenablage sind Daten zu einem Microsoft Pen Extensions
 
Const CF_PRIVATEFIRST = &H200
' Das Objekt in der Zwischenablage ist ein r-Handle
 
Const CF_PRIVATELAST = &H2FF
' Das Objekt in der Zwischenablage ist ein r-Handle
 
Const CF_RIFF = 11
' Das Objekt in der Zwischenablage ist ein Handle zu einer Audiodatei
 
Const CF_SYLK = 4
' Das Objekt in der Zwischenablage ist ein symbolischer Link
 
Const CF_TEXT = 1
' Das Objekt in der Zwischenablage ist ein Handle zu einem String
 
Const CF_WAVE = 12
' Das Object in der Zwischenablage ist ein Handle zu einer Wavedatei
 
Const CF_TIFF = 6
' Das Objekt in der Zwischenablage ist ein Handle zu einem Tiff-Bitmap
 
Const CF_UNICODETEXT = 13
' Das Objekt in der Zwischenablage ist ein Handle zu einem Unicode-String

Rückgabewert:
Ist die Funktion erfolgreich, so ist die Rückgabe ein Handle zu dem Objekt in dem angegeben Format, andernfalls istder Rückgabewert "0". Für erweiterte Fehlerinformationen rufen Sie die GetLastError-Funktion auf.

Beispiel:

Private Declare Function OpenClipboard Lib "user32" (ByVal hwnd As Long) As Long 
Private Declare Function CloseClipboard Lib "user32" () As Long
Private Declare Function EnumClipboardFormats Lib "user32" ( _
  ByVal wFormat  As Long) As Long
Private Declare Function CountClipboardFormats Lib "user32" () As Long
Private Declare Function GetClipboardData Lib "user32" ( _
  ByVal wFormat As Long) As Long
Private Declare Function GetClipboardFormatName Lib "user32" _
  Alias "GetClipboardFormatNameA" ( _
  ByVal wFormat As Long, _
  ByVal lpString As String, _
   ByVal nMaxCount As Long) As Long
Private Declare Function lstrlen Lib "kernel32" _
  Alias "lstrlenA" ( _
  ByVal lpString As Any) As Long
Private Declare Function lstrcpy Lib "kernel32" _
  Alias "lstrcpyA" ( _
  ByVal lpString1 As Any, _
  ByVal lpString2 As Any) As Long
Private Declare Function GlobalLock Lib "kernel32" (ByVal hMem As Long) As Long 
Private Declare Function GlobalUnlock Lib "kernel32" ( _
  ByVal hMem As Long)  As Long
Private Declare Function SelectObject Lib "gdi32" ( _
  ByVal hdc As Long, _
  ByVal hObject As Long) As Long
 
' BitBlt dwRop-Konstante
Private Const SRCCOPY = &HCC0020
 
' Zwischenablage Format-Konstanten
Private Const CF_BITMAP = 2 ' Das Objekt in der Zwischenablage ist ein Handle  
' eines Bitmaps
Private Const CF_DIB = 8  ' Das Objekt in de Zwischenablage ist ein Handle  
' zu einer %BITMAPINFO%-Struktur
Private Const CF_DIBV5 = 17 ' (Win 2000/XP) Das  Objekt in de Zwischenablage  
' ist ein Handle zu einer %BITMAPV5HEADER%-Struktur
Private Const CF_DIF = 5 ' Das Objekt in der Zwischenablage ist ein  
' "Software Arts' Data Interchange Format"
Private Const CF_DSPBITMAP = &H82 ' Das Objekt in der Zwischenablage ist ein  
' Handle zu einem Bitmap in einem privaten Format
Private Const CF_DSPENHMETAFILE = &H8E ' Das Objekt in der Zwischenablage ist ein Handle 
' zu einer Enhanced Metadatei in einem privaten Format
Private Const CF_DSPMETAFILEPICT = &H83 ' Das Objekt in der Zwischenablage  
' ist ein Handle zu einer Meta Grafik in einem privaten Format
Private Const CF_DSPTEXT = &H81 ' Das Objekt in der Zwischenablage ist ein  
' Handle zu einem String in einem privaten Format
Private Const CF_ENHMETAFILE = 14 ' Das Objekt in der Zwischenablage ist ein  
' Handle zu einer Enhanced Metadatei
Private Const CF_GDIOBJFIRST = &H300 ' Das Objekt in der Zwischenablage ist ein GID-Object 
' (wird beim Leeren der Zwischenablage nicht gelöscht)
Private Const CF_GDIOBJLAST = &H3FF ' Das Objekt in der Zwischenablage ist ein GID-Object 
' (wird beim Leeren der Zwischenablage nicht gelöscht)
Private Const CF_HDROP = 15 ' Das Objekt in der Zwischenablage ist eine  
' Liste von Dateihandles
Private Const CF_LOCALE = 16 ' Das Objekt in der Zwischenablage ist eine Sprach-ID,
' die für Text-Strings in der Zwischenablage benutzt wurde
Private Const CF_METAFILEPICT = 3 ' Das Objekt in der Zwischenablage ist ein  
' Handle zu einem Metafile Bild
Private Const CF_OEMTEXT = 7 ' Das Objekt in der Zwischenablage ist ein  
' Handle zu eime OEM-String
Private Const CF_OWNERDISPLAY = &H80 ' Das Objekt in der Zwischenablage ist  
' ein benutzerdefinierter Anzeigetyp
Private Const CF_PALETTE = 9 ' Das Objekt in der Zwischenablage ist ein  
' Handle zu einer Palette
Private Const CF_PENDATA = 10 ' Das Objekt der Zwischenablage sind Daten zu  
' einem Microsoft Pen Extensions
Private Const CF_PRIVATEFIRST = &H200 ' Das Objekt in der Zwischenablage ist  
' ein privates Handle
Private Const CF_PRIVATELAST = &H2FF ' Das Objekt in der Zwischenablage ist  
' ein privates Handle
Private Const CF_RIFF = 11 ' Das Objekt in der Zwischenablage ist ein Handle  
' zu einer Audiodatei
Private Const CF_SYLK = 4 ' Das Objekt in der Zwischenablage ist ein  
' symbolischer Link
Private Const CF_TEXT = 1 ' Das Objekt in der Zwischenablage ist ein Handle  
' zu einem String
Private Const CF_WAVE = 12 ' Das Objekt in der Zwischenablage ist ein Handle  
' zu einer Wavedatei
Private Const CF_TIFF = 6 ' Das Objekt in der Zwischenablage ist ein Handle  
' zu einem Tiff-Bitmap
Private Const CF_UNICODETEXT = 13 ' Das Objekt in der Zwischenablage ist ein  
' Handle zu einem Unicode-String
' Zwischenablageinhalt ermitteln
Private Sub Command1_Click()
  Dim Retval As Long, lngFormat As Long, strFormat As String * 256, i As Integer 
 
  ' Liste leeren
  List1.Clear
 
  ' Zwischenablage öffnen
  Call OpenClipboard(Me.hwnd)
 
  ' Anzahl der verschiedenen Formate der Zwischenablage ermitteln
  Debug.Print "Anzahl verschiedender Clipboard-Formate: " & CountClipboardFormats() 
 
  Do
    i = i + 1
 
    ' Das nächste Format aus der Zwischenablage ermitteln
    lngFormat = EnumClipboardFormats(lngFormat)
    If lngFormat = 0 Then Exit Do
 
    ' Format auswerten
    Select Case lngFormat
    Case CF_TEXT
      strFormat = "Text" & vbNullChar
    Case CF_BITMAP
      strFormat = "Bitmap" & vbNullChar
    Case CF_WAVE
      strFormat = "Wavedatei" & vbNullChar
    ' case... für weitere Formattypen
 
    Case Else ' Benutzerdefinierten Typ ermitteln
      If GetClipboardFormatName(lngFormat, strFormat,  _
      Len(strFormat)) = 0 Then
        strFormat = "Unbekannt" & vbNullChar
      End If
    End Select
 
    List1.AddItem Format$(i, "00") & ": " & Left$(strFormat, InStr(1,  _
    strFormat, vbNullChar) - 1) & " (" & CStr(lngFormat) & ")"
    List1.ItemData(List1.NewIndex) = lngFormat
  Loop
 
  ' Clipboard schließen
  Call CloseClipboard
End Sub
' Selektierte CF_TEXT oder CF_BITMAP der Zwischenablage im Bildfeld anzeigen
Private Sub List1_Click()
  Dim hBitmap As Long, TmpStr As String, StrLen As Long, hTmpStr As _
  Long, pTmpStr As Long
  Select Case List1.ItemData(List1.ListIndex)
  Case CF_TEXT ' Text in das Bildfeld zeichnen
 
    ' Zwischenablage öffnen
    OpenClipboard Me.hwnd
 
    ' Handle zum String ermitteln
    hTmpStr = GetClipboardData(CF_TEXT)
 
    ' Pointer des Strings ermitteln
    pTmpStr = GlobalLock(hTmpStr)
 
    ' String in eine Variable kopieren
    TmpStr = Space(lstrlen(ByVal pTmpStr))
    Call lstrcpy(TmpStr, ByVal pTmpStr)
 
    ' Pointer zerstören um Ressourcen zu sparen
    GlobalUnlock hTmpStr
 
    ' Zwischenablage schließen
    CloseClipboard
 
    ' String im Bildfeld anzeigen
    Picture1.Cls
    Picture1.Print TmpStr
 
  Case CF_BITMAP ' Bitmap aus der Zwischenablage in das Bildfeld kopieren
 
    ' Zwischenablage öffnen
    OpenClipboard Me.hwnd
 
    ' Bitmap dem Bildfeld zuweisen
    hBitmap = GetClipboardData(CF_BITMAP)
    SelectObject Picture1.hdc, hBitmap
    Picture1.Refresh
 
    ' Zwischenablage schließen
    CloseClipboard
  Case Else
 
    ' Bei einem nichtunterstützten Formt Bildfeld leeren
    Picture1.Cls
  End Select
End Sub

Diese Seite wurde bereits 7.090 mal aufgerufen.

nach obenzurück
 
   

Druckansicht Druckansicht Copyright ©2000-2014 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.

Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel