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]]]]]]] )
$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 " 2 - Verhindert das Anzeigen von " 4 - Verhindert das Anzeigen von " 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. |
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. |
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.
#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)