Funktionreferenz


_ClipBoard_SetData

Beschreibung anzeigen in

Platziert Daten eines bestimmten Formats in die Zwischenablage

#include <Clipboard.au3>
_ClipBoard_SetData ( $vData [, $iFormat = 1] )

Parameter

$vData Daten im Binär- oder Stringformat oder optional NULL (0) (Fenster muss die Daten zur Verfügung stellen (rendern, siehe unten).
WICHTIG: Falls ein String übergeben wird und dieser nicht vom Typ $CF_TEXT, $CF_OEMTEXT oder $CF_UNICODETEXT ist, so wird dieser als ein ANSI String behandelt.
Um für all die anderen Typen Unicode Strings zu erzwingen, muss man die Daten im Binärformat übergeben.
Deshalb soll man $CF_UNICODETEXT nicht im Binärformat übergeben (verursacht unlesbare Daten).
Wenn $vData NULL ist, deutet sich an, dass das Fenster in dem angefoderten festgelegten Clipboard Format zur Verfügung stellt.
Wenn ein Fenster das Rendering verzögert, muss es die $WM_RENDERFORMAT und $WM_RENDERALLFORMATS Nachrichten verarbeiten.
Bei erfolgreichem Durchlauf der Funktion, besitzt das System das Objekt, identifizierend über den $hMemory Parameter.    
Das Programm kann nicht in die Daten schreiben oder sie freigeben, aber es kann sie sperren und von ihnen lesen, bis _ClipBoard_Close aufgerufen wird.
Der Speicher muss entsperrt sein, bevor die Zwischenablage geschlossen wird. Falls der $hMemory Parameter ein Speicherobjekt identifiziert, muss dem Objekt Speicher mit dem $GMEM_MOVEABLE-Flag zugewiesen werden.   
$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: Das Handle zu den Daten
Fehler: 0

Bemerkungen

Die Funktion vollzieht alle nötigen Schritte, um Daten in die Zwischenablage zu platzieren.
Es stellt Speicher für das globale Speicherobjekt zur Verfügung, öffnet die Zwischenablage, platziert die Daten in die Zwischenablage und schließt sie wieder.
Um diese Schritte selbst zu übernehmen, sollte Gebrauch von _ClipBoard_SetDataEx() Funktion gemacht werden.

Verwandte Funktionen

_ClipBoard_Empty, _ClipBoard_GetData, _ClipBoard_GetDataEx, _ClipBoard_SetDataEx

Beispiel

#include <Clipboard.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

Global $g_idMemo

Example()

Func Example()
    Local $id_SetData, $id_GetData

    ; Erstellt eine GUI
    GUICreate("Zwischenablage", 600, 450)
    $g_idMemo = GUICtrlCreateEdit("", 2, 2, 596, 396, $WS_VSCROLL)
    GUICtrlSetFont($g_idMemo, 9, 400, 0, "Courier New")
    $id_SetData = GUICtrlCreateButton("Schreibt Daten in die Zwischenablage", 50, 410, 220, 30)
    $id_GetData = GUICtrlCreateButton("Holt Daten aus der Zwischenablage", 300, 410, 220, 30)
    GUISetState(@SW_SHOW)

    ; Die Schleife wiederholt sich, bis der Benutzer die Beenden-Aktion der GUI auslöst.
    While 1
        Switch GUIGetMsg()
            Case $GUI_EVENT_CLOSE
                ExitLoop
            Case $id_SetData
                _ClipBoard_SetData("ClipBoard Testdaten")
            Case $id_GetData
                MemoWrite(_ClipBoard_GetData())
        EndSwitch
    WEnd
EndFunc   ;==>Example

; Schreibt eine Nachricht in das Memo
Func MemoWrite($sMessage = "")
    GUICtrlSetData($g_idMemo, $sMessage & @CRLF, 1)
EndFunc   ;==>MemoWrite