Page 1 sur 1

[R] Fonction d'export de plusieurs clé de registre en 1 reg

Posté : ven. 20 mars 2009 12:22
par Steph
Bonjour,

suite à mon poste ici http://www.autoitscript.fr/forum/viewto ... f=3&t=2584 je souhaiterais si cela est possible que l'on me cré une fonction (car je ne sais le faire...) qui permetrait d'exporter plusieurs clé de registre dans un seul reg ! Je n'aurais qu'à indiquer les clés à exporter dans cette fonction, dans tout les cas je vous remercie d'avance.

cdt

Stéphane

Re: [..] Fonction d'export de plusieurs clé de registre en 1 reg

Posté : ven. 20 mars 2009 20:22
par Tlem
:shock: :shock: :shock:

Ben c'est ce que fait le bout de code que je vous ai donné !!!
La première ligne donne le fichier de sortie et la deuxième fixe une variable tableau qui contient les clés à sauvegarder et à fusionner.

Re: [..] Fonction d'export de plusieurs clé de registre en 1 reg

Posté : ven. 20 mars 2009 22:10
par Steph
Tlem a écrit :Ben c'est ce que fait le bout de code que je vous ai donné !!!
La première ligne donne le fichier de sortie et la deuxième fixe une variable tableau qui contient les clés à sauvegarder et à fusionner.
Bonsoir,

pourriez vous me le donner sous la forme de "fonction":

Code : Tout sélectionner

Func __ExportReg($Reg, $Key1, $Key2)
            ; code permettant d'enregistrer $Key1 et $Key2 dans $Reg...
EndFunc
$Reg etant le fichier reg et $Key1 et $Key2 les clés de registre à mettre dans $Reg (si l'on peut me la faire avec trois clés ou plus cela serait magnifique... qu'en faite je puisse definir moi-meme à l'aide de cette fonction le nombre de clés à exporter dans ce reg unique...si cela est possible biensûr).

Pardonnez mon inexperience mais je bute la dessus donc voilà pourquoi j'ai poster une demande de "fonction" pouvant remplir ce rôle, ainsi je n'aurais pas à reécrire le code à chaque scripte l'utilisant mais simplement utiliser la fonction.

cdt

Stéf

Re: [..] Fonction d'export de plusieurs clé de registre en 1 reg

Posté : ven. 20 mars 2009 22:28
par Tlem
Voici le code sous forme de fonction :

Code : Tout sélectionner

$RFile = @ScriptDir & "\MonFichierReg.reg"
Dim $RegKeys[2] = ["HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run", "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run"]

_RegExport($RFile, $RegKeys)


Func _RegExport($RegFile, $aKeys)

    $hFile = FileOpen($RegFile, 1)
    FileWriteLine($hFile, "Windows Registry Editor Version 5.00" & @CRLF)

    For $i = 0 To UBound($aKeys) - 1
        If FileExists(@TempDir & "\tmp.txt") Then FileDelete(@TempDir & "\tmp.txt")
        RunWait('regedit.exe /s /e "' & @TempDir & "\tmp.txt" & '" "' & $aKeys[$i] & '"')

        If FileExists(@TempDir & "\tmp.txt") Then
            $Line = 3
            FileWriteLine($hFile, "")
            While 1
                $szLigne = FileReadLine(@TempDir & "\tmp.txt", $Line)
                If @error = -1 Then ExitLoop
                $Line += 1
                FileWriteLine($hFile, $szLigne)
            WEnd
        EndIf
    Next
    FileClose($hFile)
    FileDelete(@TempDir & "\tmp.txt")
EndFunc   ;==>_RegExport
Je préfère garder la déclaration des clés de registre à sauvegarder comme je l'ai fait, car cela permet d'en mettre autant que l'on veut.

Si vous devez rajouter des clés, modifiez la deuxième ligne en remplaçant le 2 de Dim $RegKeys[2] par le nombre de clé et rajoutez dans les crochet (séparé par une virgule) chaque clé supplémentaire.

Voilà, j'espère avoir été clair dans mes explications.

Re: [..] Fonction d'export de plusieurs clé de registre en 1 reg

Posté : ven. 20 mars 2009 23:14
par Steph
Bonsoir,

merci beaucoup ! pile poil ce que je voulais !

juste une remarque: il faudrait testé les clé car si les clés ne sont pas presentes le scripte entre dans une boucle sans fin et ne s'arrete plus ! autre remarque si je le fait avec deux clé et qu'une de ces 2 clé n'existe pas la fonction m'ecrit deux fois la meme clé dans le reg...

Sinon ça marche au poil si les clé sont presentes ! merci encore

cdt

ps: je laisse les ... en attendant si quelqu'un peut me le modifier en prenant en compte mes remarques...

Stéphane

Re: [..] Fonction d'export de plusieurs clé de registre en 1 reg

Posté : ven. 20 mars 2009 23:58
par Tlem
J'ai ré-édité mon code et il devrait fonctionner comme vous le souhaitez.

Re: [..] Fonction d'export de plusieurs clé de registre en 1 reg

Posté : sam. 21 mars 2009 16:49
par Steph
Tlem a écrit :J'ai ré-édité mon code et il devrait fonctionner comme vous le souhaitez.
merci beaucoup ! testé et fonctionel comme il faut 8)

cdt