Gibt die Daten eines Elements der Struktur zurück.
DllStructGetData ( Struct, Element [, index] )
| Struct | Die Struktur zurückgegeben aus DllStructCreate. |
| Element | Das Element auf das man zugreifen möchte, beginnend bei 1 oder dem Elementnamen wie in DllStructCreate festgelegt. |
| index | [optional] Befinden sich die Elemente in einem Array, so legt dies den 1-basierenden Index des zu erneuernenden Arrays fest. Falls dies nicht angegeben wird oder das Schlüsselwort Default verwendet wird, so wird das komplette Array erneuert (nützlich für String die schnell erneuert werden sollten). Nicht für nicht-Array Elemente. |
| Erfolg: | Daten in dem Element der Struktur. |
| Fehler: | 0. |
| @Error: | 0 = Kein Fehler. |
| 1 = Struct ist keine korrekte Struktur aus DllStructCreate zurückgegeben. | |
| 2 = Element-Wert nicht im zulässigen Bereich. | |
| 3 = Index würde ausserhalb der Struktur sein. | |
| 4 = Element Datentyp unbekannt | |
| 5 = Index <= 0. |
; Erstellen der DLL Struct, die in der DllCall Funktion benutzt wird:
Local $tagOSVERSIONINFO = DllStructCreate('dword dwOSVersionInfoSize;dword dwMajorVersion;dword dwMinorVersion;dword dwBuildNumber;dword dwPlatformId;char szCSDVersion[128]')
; Aktualisierung der Größe vom "Size" Element der Struct. Darin soll die Gesamtgröße der Struct (DllStructGetSize()) gepseichert werden.
DllStructSetData($tagOSVERSIONINFO, 'dwOSVersionInfoSize', DllStructGetSize($tagOSVERSIONINFO))
; DllCall um die API Funktion "GetVersionEx" aufzurufen und an die Struct weiterzuleiten:
Local $aReturn = DllCall('kernel32.dll', 'int', 'GetVersionEx', 'struct*', $tagOSVERSIONINFO)
If @error Or Not $aReturn[0] Then
MsgBox(0, "DLLCall Error", "Systeminformationen konnten aufgrund eines Fehlers nicht gelesen werden.")
EndIf
; Auslesen der Daten von den Element-Strings:
Local $iMajorVersion = DllStructGetData($tagOSVERSIONINFO, 'dwMajorVersion')
Local $iMinorVersion = DllStructGetData($tagOSVERSIONINFO, 'dwMinorVersion')
Local $iBuildNumber = DllStructGetData($tagOSVERSIONINFO, 'dwBuildNumber')
Local $sServicePack = DllStructGetData($tagOSVERSIONINFO, 'szCSDVersion')
; Struct "löschen":
$tagOSVERSIONINFO = 0
MsgBox(0, "System", "Version: " & $iMajorVersion & @CRLF & _
"Unterversion: " & $iMinorVersion & @CRLF & _
"Build: " & $iBuildNumber & @CRLF & _
"Service Pack: " & $sServicePack & @CRLF)