Je suis à la recherche d'un petit bout de code, d'une petite fonction pour renommer une clé dans la base de registre

J'ai cherché rapidement et n'ayant rien trouvé, j'ai écrit ou plutôt j'ai bidouillé rapidement

Donc à défaut de trouver mon bonheur, qu'en pensez-vous, moyen de l'améliorer de manière significative ? Une vrai fonction RegRename caché quelque part

Merci d'avance de votre aide et de vos conseils à ce sujet.
Bonne soirée.
FernandG
Code : Tout sélectionner
RegRename("HKEY_LOCAL_MACHINE\SOFTWARE\OldKey", "HKEY_LOCAL_MACHINE\SOFTWARE\NewKey")
MsgBox(64, "Info", "Fin")
Func RegRename($key_search, $key_replace)
$file = @TempDir & '\' & @Computername & '.reg'
If FileExists($file) Then FileDelete($file)
RunWait('regedit /e ' & $file & ' "' & $key_search & '"', "C:\", @SW_HIDE)
$fichier = FileOpen($file, 0)
If $fichier = -1 Then
MsgBox(16, "Erreur", "Impossible d'ouvrir le fichier : " & $file)
Exit
EndIf
While 1
Dim $new
$ligne = FileReadLine($fichier)
If @error = -1 Then ExitLoop
If StringInStr($ligne, $key_replace) Then $ligne = StringReplace($ligne, $key_search, $key_replace)
$new = $new & $ligne & @CRLF
Wend
FileClose($fichier)
$fichier = FileOpen($file, 2)
If $fichier = -1 Then
MsgBox(16, "Erreur", "Impossible d'ouvrir le fichier : " & $file)
Exit
EndIf
FileWrite($fichier, $new)
FileClose($fichier)
RunWait('regedit /s ' & $file, "C:\", @SW_HIDE)
RegDelete($key_search)
FileDelete($file)
EndFunc