[R] Fonction d'export de plusieurs clé de registre en 1 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] Fonction d'export de plusieurs clé de registre en 1 reg

#1

Message 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
Modifié en dernier par Steph le sam. 21 mars 2009 16:49, 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: [..] Fonction d'export de plusieurs clé de registre en 1 reg

#2

Message 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.
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: [..] Fonction d'export de plusieurs clé de registre en 1 reg

#3

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

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

#4

Message 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.
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: [..] Fonction d'export de plusieurs clé de registre en 1 reg

#5

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

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

#6

Message par Tlem »

J'ai ré-édité mon code et il devrait fonctionner comme vous le souhaitez.
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: [..] Fonction d'export de plusieurs clé de registre en 1 reg

#7

Message 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
Répondre