wie exportiere ich einen Registrierungsordener aus der Registry und speichere diesen dann als reg.datei ab?
Reg-datei speichern
-
- [ gelöst ]
-
Vollnoob -
4. Juni 2007 um 13:43 -
Geschlossen -
Erledigt
-
-
- Offizieller Beitrag
Hi!
Ich weiß nicht, ob das mit regedit.exe oder über DOS mit Kommandozeilenparametern geht - wäre mal eine Google-Suche wert.
Sonst ginge es etwas umständlicher über RegEnumValue/-Key und das eigene Zusammenbauen der .reg-Datei. Dazu kannst du dir ja vorhandene Dateien anschauen. Wichtig ist das Textformat, ich glaube, es muss UTF-8 sein.Viel Erfolg,
peethebee -
manuell brauchst du nur mit regedit die registrierung öffnen, den entsprechenden ordner rechtsklicken und exportieren klicken.
Mein prob ist es, das ganze direkt über autoit zu erledigen, ohne die Maus simulieren zu müssen.
-
- Offizieller Beitrag
Ja, dass das ausscheidet, da sind wir uns einig.
Daher entweder als Parameter beim Aufruf der regedit.exe (wenn möglich) oder über die AutoIt-Registry-Funktionen.peethebee
-
Anleitung für regedit.exe gefunden
ZitatMit dem Schalter /E oder /A kann man über "Start-Ausführen" oder in einer Batch ein Reg.-File exportieren.
Beispiel:
Regedit /E C:\RegFile.reg "HKEY_CURRENT_USER\AppEvents"
exportiert den kompletten Schlüssel "AppEvents" mit dem Namen RegFile.reg und ist dann unter C:\ zu finden.
Windows NT, 2000 und XP erzeugen Reg-Dateien des alten Formats, wenn man sie mit der Kommandozeilenoption /a aufruft.
Will man nun unter XP beim Exportieren das "REGEDIT4" erzwingen, setzt man den Schalter /A, um unabhängig von der Windows-Version das RegFile wieder importieren zu können.Beispiel:
Regedit /A C:\RegFile.reg "HKEY_CURRENT_USER\AppEvents"
Statt C:\RegFile kann natürlich ein anderer Pfad und Dateiname genommen werden, nur die Endung .reg muss beibehalten werden. Der zu exportierende Unterschlüssel muss in Anführungszeichen stehen.
Einen Unterschlüssel löschen:
Start - Ausführen - OK
reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Testordner /fDer Schalter /f dient zur Unterdrückung der Bestätigungsabfrage (Y/N?).
lässt sich regedit.exe /A... einfach mit dem RUN-Befehl durchführen?
-
- Offizieller Beitrag
HI,
warum nicht?
So long,
Mega
-
Ok, war ne blöde frage THX trotzdem
-
hat jemand ne Ahnung, warum dass hier nicht funzt?
[autoit]$regname = InputBox ("Kontoname","Geben sie den Namen an, unter dem sie das aktuelle Konto speichern möchten.")
[/autoit]
$speicherpfad = (@ScriptDir & "\" & $regname & ".reg")
MsgBox (0,"",$speicherpfad,2)
Msgbox(0,"","Regedit /A " & $speicherpfad & ' "HKEY_CURRENT_USER\Software\Microsoft\Microsoft Games\Freelancer\1.0"')
RunWait("Regedit /A " & $speicherpfad & ' "HKEY_CURRENT_USER\Software\Microsoft\Microsoft Games\Freelancer\1.0"') -
Ich nehme an das du den gesammten Pfad zu Regedit angeben musst da er sonst die Datei nicht findet
-
- Offizieller Beitrag
Bei mir läuft es, nur wenn der zu exportierende Schlüssel nicht existiert wird auch nichts exportiert!
-
es lag daran, dass mein zielordnername leerzeichen beinhaltete, kann man das irgendwie umgehen, dass es trotzdem funzt?
-
- Offizieller Beitrag
Hi!
RunWait('Regedit /A "' & $speicherpfad & '" "HKEY_CURRENT_USER\Software\Microsoft\Microsoft Games\Freelancer\1.0"')
Pfad in " " einfassen...
Sollte gehen, nicht gtestet.peethebee
-
muchos grazias zusammen, es funzt!
-
das tolle ist es fuzt, aber ich kapier die logik nicht.
Wenn ich normalerweise einen Parameter in "" setze, wird er wie ein string behandelt. bei deiner version wirds problemlos akzeptiert.einfacheres bsp, damits auch ich kapier
RunWait ("regedit /s " & $konto1)
der $konto beinhaltet den gesamten Pfad mit dem vollständigen namen der zuvor exportierten reg.datei
selbes Prob. Leerzeichen im Pfad.
mit chr(34) check ichs, aber irgendwie blick ich bei deiner lösung nicht ganz durch
-
- Offizieller Beitrag
Hi!
Der Pfad muss nachher in doppelten Anführungszeichen stehen, also z.B.
regedit /s "C:\Dok und Einst\AutoIt\"
Da man bei AutoIt statt " " auch ' ' verwenden kann, benutzen wir das, um den String an sich einzufassen, damit AutoIt das korrekt auseinanderhalten kann, also:
RunWait ('regedit /s " ' & $konto1 & ' " ') ; Mit Leerzeichen zur Verdeutlichung
Und dann sauber:
RunWait ('regedit /s "' & $konto1 & '"')peethebee
-
sag halt gleich, dass ich den parameter eingegänsefüßt dazwischenhaken muss
Danke, jetzt komm ich wieder weiter.
Thema gelöst