Page 1 sur 1
[R] Exporter plusieurs clé de registre dans un seul reg
Posté : mer. 18 mars 2009 18:39
par Steph
Bonsoir,
Je voulais savoir s'il y avait moyen d'exporter plusieur clés de registre dans un seul reg, je m'explique: Je desirerais exporter $Reg1 et $Reg2 dans "MonProg.reg" ici
Code : Tout sélectionner
$PortReg1 = @ScriptDir & "\Data\" & $AppName & "HKCU.reg"
$PortReg2 = @ScriptDir & "\Data\" & $AppName & "HKLM.reg"
$Reg1 = "HKEY_CURRENT_USER\Software\MonProg"
$Reg2 = "HKEY_LOCAL_MACHINE\SOFTWARE\MonProg"
A l'heure actuel je les exporte dans deux reg differrent à l'aide de:
Code : Tout sélectionner
RunWait('regedit.exe /s /e "' & $PortReg1 & '" "' & $Reg1 & '"')
RunWait('regedit.exe /s /e "' & $PortReg2 & '" "' & $Reg2 & '"')
Je souhaiterais donc savoir si cela est possible et comment le faire... merci d'avance !
cdt
Stéphane
Re: [..] Exporter plusieurs clé de registre dans un seul reg
Posté : jeu. 19 mars 2009 22:34
par Tlem
Je vous laisse améliorer ceci :
Code : Tout sélectionner
$RegFile = @ScriptDir & "\MonFichierReg.reg"
Dim $Key[2] = ["HKEY_CURRENT_USER\Software\MonProg", "HKEY_LOCAL_MACHINE\SOFTWARE\MonProg"]
RunWait('regedit.exe /s /e "' & $RegFile & '" "' & $Key[0] & '"')
$hFile = FileOpen($RegFile, 1)
For $i = 1 To UBound($Key)-1
RunWait('regedit.exe /s /e "'& @TempDir & "\tmp.txt" & '" "' & $Key[$i] & '"')
$Line = 3
FileWriteLine($hFile,"")
While 1
$szLigne = FileReadLine(@TempDir & "\tmp.txt", $Line)
If @error = -1 Then ExitLoop
$Line += 1
FileWriteLine($hFile,$szLigne)
WEnd
Next
FileClose($hFile)
FileDelete(@TempDir & "\tmp.txt")
Re: [..] Exporter plusieurs clé de registre dans un seul reg
Posté : ven. 20 mars 2009 22:26
par Steph
Bonsoir,
merci beaucoup ! testé et marche au poil !
En exemple pour 3 clés, il faudrais à present le mettre sous forme de fonction...mais le code est fonctionnel tel quel !.
Code : Tout sélectionner
Dim $AppName, $PortKey1, $PortKey2, $PortKey3, $PortReg
$AppName = "AutoItv3"
$PortReg = @ScriptDir & "\Data\" & $AppName & ".reg"
$PortKey1 = "HKEY_CURRENT_USER\Software\AutoIt v3"
$PortKey2 = "HKEY_LOCAL_MACHINE\SOFTWARE\AutoIt v3"
$PortKey3 = "HKEY_LOCAL_MACHINE\SOFTWARE\ASUS"
Dim $Key[3] = [$PortKey1, $PortKey2, $PortKey3]
If Not FileExists(@ScriptDir & "\Data\" & $AppName) Then DirCreate(@ScriptDir & "\Data\" & $AppName)
RunWait('regedit.exe /s /e "' & $PortReg & '" "' & $Key[0] & '"')
$hFile = FileOpen($PortReg, 1)
For $i = 1 To UBound($Key) - 1
RunWait('regedit.exe /s /e "' & @TempDir & "\tmp.txt" & '" "' & $Key[$i] & '"')
$Line = 3
FileWriteLine($hFile, "")
While 1
$szLigne = FileReadLine(@TempDir & "\tmp.txt", $Line)
If @error = -1 Then ExitLoop
$Line += 1
FileWriteLine($hFile, $szLigne)
WEnd
Next
FileClose($hFile)
FileDelete(@TempDir & "\tmp.txt")
cdt
Re: [R] Exporter plusieurs clé de registre dans un seul reg
Posté : ven. 20 mars 2009 22:48
par Tlem
Pour la fonction, voir l'autre message.