Auflisten von Registrierungswerten in Go (Golang)

8

Ich versuche, über eine Liste von Werten in der Windows-Registrierung mit Go aufzulisten, aber ich habe Probleme. Ich habe zwei Ansätze ausprobiert: die Verwendung der von Go bereitgestellten syscall -Bibliothek zum Aufruf von RegEnumValue sowie von mit einem Windows-API-Wrapper von lxn . In beiden Fällen habe ich das gleiche Problem. Dies ist der Code, den ich verwende (der momentan die win-Bibliothek von lxn verwendet):

%Vor%

In diesem Fall gibt RegEnumValue immer den Code 87 zurück, der MSDNs einzige Erklärung ist" Der Parameter ist falsch. "

Hat jemand irgendwelche Ideen, die mich dazu bringen können, in die richtige Richtung zu gehen?

    
Jake Wood 25.08.2013, 03:43
quelle

2 Antworten

5

Ein Mitglied des Golred-Unterreddits wies darauf hin, dass ich den Puffern, die an RegEnumValue übergeben wurden, keinen Speicher zugewiesen habe. Daher habe ich das obige Beispiel wie folgt korrigiert:

%Vor%

Offensichtlich sollte die "magische Zahl" von 72 wahrscheinlich durch etwas anderes ersetzt werden. Es gibt eine andere Methode namens RegQueryInfoKey , die Informationen über den Registrierungsschlüssel abrufen kann, um die richtige Anzahl an Bytes für den größten Namen und Wert im Schlüssel zuzuweisen.

    
Jake Wood 25.08.2013, 06:44
quelle
1

Vielleicht hat jemand das nützlich gefunden:

%Vor%

REG_BINARY-Werte sehen wie "\ x01 \ x00 \ x00 ..."

aus     
Oleg Neumyvakin 10.07.2016 18:31
quelle

Tags und Links