Funktionreferenz


_WinAPI_DisplayStruct

Beschreibung anzeigen in

Zeigt die Daten einer gegebenen Struktur oder Speicheradresse als Liste an

#include <WinAPIDiag.au3>
_WinAPI_DisplayStruct ( $tStruct [, $sStruct = '' [, $sTitle = '' [, $iItem = 0 [, $iSubItem = 0 [, $iFlags = 0 [, $bTop = True [, $hParent = 0]]]]]]] )

Parameter

$tStruct Eine Struktur welche mittels DllStructCreate() erstellt wurde oder eine Speicheradresse um ihre Daten anzuzeigen.
$sStruct [optional] Einen String welcher die Struktur repräsentiert.
Wenn $tStruct eine Struktur ist, so kann dieser Parameter übersprungen werden oder ein leerer String sein. In diesem Fall wird die Struktur als "byte[n]" Struktur angezeigt.
Wenn $tStruct eine Speicheradresse ist, so sollte $sStruct ein String sein welcher die Struktur repräsentiert, anderenfalls schlägt diese Funktion fehl und @error wird auf 10 gesetzt.
$sTitle [optional] Der Titel des Fensters. Standardmäßig lautet dieser "Structure: ListView Display".
$iItem [optional] Der 1-basierte Index oder der Name des Strukturmitglieds welcher in der Liste ausgewählt werden soll.
Wenn dieser Parameter 0 ist (Standard), oder ein ungültiger Index oder Name, so wird das erste Element der Struktur ausgewählt.
$iSubItem [optional] Der 1-basierte Index des Arrays im Strukturmitglied, welcher auf den vom $iItem Parameter gezeigt wird, der ausgewählt werden soll.
Wenn $iItem nicht als Array in $sStruct definiert wurde, ein ein ungültiger Arrayindex ist, so wird das Element ausgewählt auf welches der $iItem Parameter zeigt.the $iItem parameter will be selected.
$iFlags [optional] Eine Menge von Bitflags die zusätzliche Anzeigeoptionen angeben.
Dieser Parameter kann entweder 0 oder irgendeine Kombinatino der folgenden Werte sein:
    1 - Verhindert das Anzeigen von "" und "" Feldern am Anfang und am Ende der Liste.
    2 - Verhindert das Anzeigen von "" Feldern.
    4 - Verhindert das Anzeigen von "" in der "Member" Spalte der Liste wenn das Strukturelement keinen Namen hat.
    8 - Verhindert das Hervorheben von Strukturelementen welche als Array definiert sind.
    16 - Verhindert das Wahrnehmen von Strukturelementen welche "Reserved*" genannt wurden als unbenutzte Elemente.
    32 - Verhindert das Kopieren mittels Doppeklick der Strukturelemente in die Zwischenablage.
    64 - Erzwingt das Erweitern von Strukturelementen mit den Typen BYTE[n] und BOOLEAN[n]. (Elemente mit den Typen CHAR[n] und WCHAR[n] werden immer als String angezeigt.)
    128 - Erzwingt das Anzeigen der Werte von Strukturelementen in hexadezimaler Repräsentation sofern möglich.
    256 - Erzwingt die Rückgabe eines Fehlercodes statt dem Anzeigen einer MessageBox wenn ein Speicherzugriffsfehler auftrat.
    512 - Erzwingt die Abschaltung der Überprüfung des Lesezugriffsspeichers welcher der gegebenen Struktur zugewiesen wurde.
$bTop [optional] Gibt an, ob das zu erstellende Fenster mit dem "immer ganz oben" (Always On Top) Attribut erzeugt werden soll. Gültige Werte sind:
    True - Das Fenster wird mit dem erweiterten Stil $WS_EX_TOPMOST erzeugt (Standard).
    False - Das Fenster wird nicht das "TOPMOST" Flag gesetzt haben.
$hParent [optional] Das Handle zum Parentfenster.

Rückgabewert

Erfolg: 1.
Fehler: 0 und setzt das @error Flag auf ungleich null.
@error: 2 - Es wurde ein unbekannter Typ im String übergeben.
3 - Die Zuweisung des Speichers, welcher für die Struktur benötigt wird, schlug fehl oder es wurde ein ungültiger Zeiger übergeben.
4 - Die Zuweisung des Speichers, welcher für den übergebenen String benötigt wird schlug fehl.
10 - Der $sStruct Parameter ist kein String.
15 - Fehler beim Zugriff des Speichers um Daten zu lesen.

Bemerkungen

Diese Funktion ist hauptsächlich für das Debugging gedacht und sollte im finalen Script nicht verwendet werden, da er keine brauchbaren Informationen für die Endnutzer bereitstellt.

Beispiel

#include <WinAPIDiag.au3>

Local $sStruct = 'dword Length;short State;uint Flags;handle hBitmap;hwnd hDC;long Rect[4];byte[14];int Reserved[10];wchar Text[80]'
Local $tStruct = DllStructCreate($sStruct)

DllStructSetData($tStruct, 1, 80)
DllStructSetData($tStruct, 2, 6)
DllStructSetData($tStruct, 3, 1)
DllStructSetData($tStruct, 4, 0x00010014)
DllStructSetData($tStruct, 5, 0x01010057)
DllStructSetData($tStruct, 6, 20, 1)
DllStructSetData($tStruct, 6, 20, 2)
DllStructSetData($tStruct, 6, 60, 3)
DllStructSetData($tStruct, 6, 80, 4)
DllStructSetData($tStruct, 7, Binary('0x656A6D633835206C6A6764206200'))
DllStructSetData($tStruct, 8, 0)
DllStructSetData($tStruct, 9, 'Einfacher Text')

_WinAPI_DisplayStruct($tStruct, $sStruct)