[R] A la recherche de la fonction RegRename
Posté : mar. 15 avr. 2008 22:17
Bonsoir à tous,
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
le code ci dessous. Une façon détourné d'arriver à mes fins.
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
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