Im Normalfall vermeide ich die Arbeit mit der Registry, und wenn ich es dann doch mal nutze, eigentlich nur lesend. Nun wollte ich aber selbst einen Eintrag erstellen:
Folgendes Bsp.
#RequireAdmin
$iSucc = RegWrite('HKEY_LOCAL_MACHINE\SOFTWARE\BugFix', 'Test', 'REG_SZ', 'Mein-Wert')
MsgBox(0, 'RegWrite', "$iSucc --> " & $iSucc & @LF & "#Error: " & @error)
Ich starte das Skript, die Benutzerkontensteuerung fragt an - ich bestätige und Regwrite wird laut Return-/Errorwert auch erfolgreich durchgeführt.
In der Registry ist aber keine Änderung sichtbar!
Aber ein RegRead('HKEY_LOCAL_MACHINE\SOFTWARE\BugFix', 'Test') zeigt, dass der Wert tatsächlich eingetragen wurde.
Weder ein Aktualisieren, noch ein Neustart des Reg-Editors veranlassen diesen, die Änderung anzuzeigen.
Ist das bei euch ebenso? Ich finde das schon recht verwirrend.
EDIT:
Auch nach einem PC-Neustart ist der Wert abfragbar, aber nicht im Reg-Editor sichtbar.
EDIT#2
Ich habe es gefunden. Obwohl ich explizit NICHT den 64-Bit Zweig angegeben habe, wird ungefragt dorthin geschrieben. Das ist natürlich Mist.
Wie kann ich dann definieren, dass nicht im 64-Bit Zweig geschrieben werden soll?
Laut Hilfe dürfte das nicht passieren:
When running on 64-bit Windows if you want to write a key or value specific to the 64-bit environment you have to suffix the HK... with 64 i.e. HKLM64.