[R] Exporter plusieurs clé de registre dans un seul reg

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Steph
Niveau 3
Niveau 3
Messages : 38
Enregistré le : sam. 21 févr. 2009 17:53
Status : Hors ligne

[R] Exporter plusieurs clé de registre dans un seul reg

#1

Message 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
Modifié en dernier par Steph le ven. 20 mars 2009 22:26, modifié 1 fois.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Exporter plusieurs clé de registre dans un seul reg

#2

Message 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")
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Steph
Niveau 3
Niveau 3
Messages : 38
Enregistré le : sam. 21 févr. 2009 17:53
Status : Hors ligne

Re: [..] Exporter plusieurs clé de registre dans un seul reg

#3

Message 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
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11798
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [R] Exporter plusieurs clé de registre dans un seul reg

#4

Message par Tlem »

Pour la fonction, voir l'autre message.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre