| |
|
|
|
Beschreibung:
RegQueryValueEx liest den Typ und die Daten eines eines Wertes aus der Registry aus.
Deklaration:
Def @RegQueryValueEx(6) !ADVAPI32,RegQueryValueExA
Parameter:
1.Parameter: Handle des Registryschlüssels, der den Wert enthält als LongInt. 2.Parameter: Adresse eines Strings mit dem Namen des auszulesenden Wertes oder eine Bereichsvariable, die diesen Namen enthält. 3.Parameter: Reserviert, muß 0 sein. 4.Parameter: Bereichsvariable, die den Typ des ausgelesenen Wertes empfängt (kann 0 sein) => -$3 = Binärer Schlüssel (Bytefolge unterschiedlicher Größe). -$4 = 4 Byte oder LongIntwert. Oft werden nur die zwei oberen Bytes des Wertes berücksichtigt. -$5 = 4 Byte oder LongIntwert. Die unteren 2 Byte des Wertes werden berücksichtigt. -$2 = String mit abschließendem Nullbyte. Kann Umgebungsvariablen enthalten. -$6 = Ein symbolischer Link im Unicode Format. -$7 = Ein Array nullterminierter Strings. -$0 = Nicht definierter Datentyp. -$8 = Treiber Resourcenliste. -$1 = String mit abschließendem Nullbyte ohne Umgebungsvariablen. 5.Parameter: Bereichvariable, die den Wert empfängt. 6.Parameter: 4 Byte Bwereichsvariable. Dieser Wert muß auf die Größe des Bereichs in Parameter 4 gesetzt werden. Wenn die Funktion zurückkehrt, steht hier die Länge des ausgelesenen Wertes in Bytes.
Rückgabewert:
0 bei Erfolg, bei Misserfolg ein Wert <>0 (Fehlercode).
Beispiele:
Declare Handle#,FEHLER&,Key#,Name#,Wert#,Size#,Type#
def @RegOpenKeyEx(5) !"ADVAPI32","RegOpenKeyExA"
def @RegQueryValueEx(6) !"ADVAPI32","RegQueryValueExA"
def @RegCloseKey(1) !"ADVAPI32","RegCloseKey"
Windowstyle 31
Windowtitle "Aus Registry Startmenüname auslesen"
Window 0,0-640,440
DIM Key#,260
DIM Handle#,4
DIM Name#,250
DIM Size#,4
DIM Wert#,260
Dim Type#,4
String key#,0="SoftwareMicrosoftWindowsCurrentVersionExplorerUser Shell Folders"
LET FEHLER&=@RegOpenKeyEx($80000001,Key#,0,$F003F,Handle#)
Print "Fehlercode beim Öffenen des Schlüssels User Shell Folders: ";Fehler&
IF Fehler&=0
String Name#,0="Start Menu"
long Size#,0=260
Let Fehler&=@RegQueryValueEx(@Long(Handle#,0),Name#,0,Type#,Wert#,Size#)
Print "Fehlercode beim Auslesen des Schlüssels: ";Fehler&
Print ""
Print "Das Startmenü des aktuellen Users steht hier: "
Print @String$(Wert#,0)
Print "Typ des Schlüssels: ";@Long(Type#,0)
Print "Länge des Wertes: ";@Long(Size#,0);" Bytes"
Print ""
Print "Fehlercode RegCloseKey: ";@RegCloseKey(@Long(Handle#,0))
endif
IF Fehler&<>0
String key#,0="SoftwareMicrosoftWindowsCurrentVersionExplorerShell Folders"
LET FEHLER&=@RegOpenKeyEx($80000001,Key#,0,$F003F,Handle#)
Print "Fehlercode beim Öffenen des Schlüssels Shell Folders: ";Fehler&
String Name#,0="Start Menu"
long Size#,0=260
Let Fehler&=@RegQueryValueEx(@Long(Handle#,0),Name#,0,Type#,Wert#,Size#)
Print "Fehlercode beim Auslesen des Schlüssels: ";Fehler&
Print ""
Print "Das Startmenü des aktuellen Users steht hier: "
Print @String$(Wert#,0)
Print "Typ des Schlüssels: ";@Long(Type#,0)
Print "Länge des Wertes: ";@Long(Size#,0);" Bytes"
Print ""
Print "Fehlercode RegCloseKey: ";@RegCloseKey(@Long(Handle#,0))
endif
IF Fehler&<>0
Print "Fehler!!!!!! Startmenü konnte nicht ausgelesen werden!!!"
endif
Dispose Type#
Dispose Wert#
Dispose key#
Dispose Handle#
Dispose Name#
Dispose Size#
While 0=0
Waitinput
wend
|
|
|
| |
|
|