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.