Ruft Daten eines bestimmten Format's aus der Zwischenablage ab
#Include <Clipboard.au3>
_ClipBoard_GetDataEx([$iFormat = 1])
Parameter
| $iFormat | [optional] Legt ein Format für die Zwischenablage fest: $CF_TEXT - Textformat ($iFormat = 1) $CF_BITMAP - Handle zu einer Bitmap (HBITMAP) ($iFormat = 2) $CF_METAFILEPICT - Handle zu einem Bild im Format der Zwischendateien (Win16) (METAFILEPICT) ($iFormat = 3) $CF_SYLK - Microsoft Symbolic Link (SYLK) Format ($iFormat = 4) $CF_DIF - Software Arts' Data Interchange Format ($iFormat = 5) $CF_TIFF - Tagged Image File Format ($iFormat = 6) $CF_OEMTEXT - Textformat mit Zeichen im OEM Zeichensatz ($iFormat = 7) $CF_DIB - BITMAPINFO-Struktur gefolgt von den Bitmap Bits ($iFormat = 8) $CF_PALETTE - Ein (direkter) Handle zu einer Farbpalette, die sich üblicherweise auf ein geräteabhängiges Bitmap (CF_BITMAP) bezieht, d.h. dessen "echte" Farbe festlegen ($iFormat = 9) $CF_PENDATA - für die Erweiterungen der (mittlerweile durch CE ersetzten) Pen-Variante von Windows ($iFormat = 10) $CF_RIFF - Audiodateien im RIFF Format ($iFormat = 11) $CF_WAVE - Audiodateien im WAVE Format ($iFormat = 12) $CF_UNICODETEXT - Unicode Textformat ($iFormat = 13) $CF_ENHMETAFILE - Handle zu einer Zwischendatei im neuen "erweiterten" Format (Win32) (HENHMETAFILE) ($iFormat = 14) $CF_HDROP - Handle zu einer Liste von Dateinamen für Drag & Drop-Operationen ($iFormat = 15) $CF_LOCALE - ist eine zusätzliche Information für ANSI-Texte (CF_TEXT) und gibt an, auf welche landessprachliche Variante sich die Zeichencodes beziehen ($iFormat = 16) $CF_DIBV5 - ein Speicherobjekt, das eine BITMAPV5HEADER-Struktur gefolgt von der Bitmap-Farbe und den Bitmap-Bits enthält ($iFormat = 17) $CF_OWNERDISPLAY - Owner Display Format ($iFormat = 0x0080) $CF_DSPTEXT - Text, dessen Anzeigeformat mit eigenem (private) Format verbunden ist (CF_PRIVATEFIRST, CF_PRIVATELAST) ($iFormat = 0x0081) $CF_DSPBITMAP - Bitmap, dessen Anzeigeformat mit eigenem (private) Format verbunden ist (CF_PRIVATEFIRST, CF_PRIVATELAST) ($iFormat = 0x0082) $CF_DSPMETAFILEPICT - Zwischendatei, dessen Anzeigeformat mit eigenem (private) Format verbunden ist (CF_PRIVATEFIRST, CF_PRIVATELAST) ($iFormat = 0x0083) $CF_DSPENHMETAFILE - Erweiterte Zwischendatei, dessen Anzeigeformat mit eigenem (private) Format verbunden ist (CF_PRIVATEFIRST, CF_PRIVATELAST) ($iFormat = 0x008E) |
Rückgabewert
| Erfolg: | Handle zu einem Objekt aus der Zwischendatei im angegebenen Format |
| Fehler: | 0 |
Bemerkungen
Falls die in der Zwischenablage gespeicherten Daten nicht das bei _ClipBoard_GetData angegebene Format haben, liefert diese Funktion den Wert NULL anstelle eines Handles zurück. Das sollte auf jeden Fall geprüft und die Zwischenablage mit _ClipBoard_Close geschlossen werden.
Verwandte Funktionen
_ClipBoard_SetData, _ClipBoard_GetData
Siehe auch
Suche in der MSDN Bibliothek nach GetClipboardData
Beispiel
#include <GuiConstantsEx.au3>
#include <ClipBoard.au3>
#include <WindowsConstants.au3>
Opt('MustDeclareVars', 1)
Global $iMemo
_Main()
Func _Main()
Local $hGUI, $btn_SetData, $btn_GetData, $hMemory, $tData
; Erstellt eine GUI
$hGUI = GUICreate("Zwischenablage", 600, 450)
$iMemo = GUICtrlCreateEdit("", 2, 2, 596, 396, $WS_VSCROLL)
GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
$btn_SetData = GUICtrlCreateButton("Schreibt Daten in die Zwischenablage", 50, 410, 220, 30)
$btn_GetData = GUICtrlCreateButton("Holt Daten aus der Zwischenablage", 300, 410, 220, 30)
GUISetState()
; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
Case $btn_SetData
_ClipBoard_SetData("ClipBoard Testdaten")
Case $btn_GetData
; Öffnet die Zwischenablage
If Not _ClipBoard_Open($hGUI) Then _WinAPI_ShowError("_ClipBoard_Open fehlgeschlagen!")
; Liest Text aus der Zwischenablage
$hMemory = _ClipBoard_GetDataEx($CF_TEXT)
If $hMemory = 0 Then _WinAPI_ShowError("_ClipBoard_GetDataEx fehlgeschlagen!")
; Schließt die Zwischenablage
_ClipBoard_Close()
$tData = DllStructCreate("char Text[8192]", $hMemory)
MemoWrite(DllStructGetData($tData, "Text"))
EndSwitch
WEnd
EndFunc ;==>_Main
; Schreibt eine Nachricht in das Memo
Func MemoWrite($sMessage = "")
GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
EndFunc ;==>MemoWrite