Classe permettant la copie récursive et la verification de l'existance de cles registres

Contenu du snippet

Cette classe comporte 2 fonctions :

- copyTreeKeys(source, destination) qui permet de copier tout le contenu (sous-clés, sous clés des sous-clés, etc. et les valeurs contenues
dans chacune de ces sous-clés vers la destination. On peut ainsi déplacer facilement les données d'une clé racine vers une autre.
Ex. : RegistryUtil.copyTreeKey(Microsoft.Win32.Registry.LocalMachine.OpenSubKey("Software").OpenSubKey("Ahead").OpenSubKey("Nero -
Burning Rom"), Microsoft.Win32.Registry.LocalMachine.OpenSubKey("Software").CreateSubKey("Backup
Registry").CreateSubKey("Ahead").CreateSubKey("Nero - Burning Rom"))
Cet exemple copie l'arborescence complète (sous-clés et valeurs) depuis la clé source vers la clé de destination.

- copyValues(source, destination) qui permet de copier uniquement toutes les valeurs d'une clé registre vers une autre clé registre.
Ex. : Idem que pour la fonction précédente mais cette fonction ne copie que les valeurs directement liées à la clé source et elle ne
copie pas les sous-clés.

- subKeyExist(cleRegistre, sousCleAVerifier) renvoie True si la sous-clé existe dans la clé registre spécifiée en premier argument de la
fonction sinon, renvoie False.
Ex. : RegistryUtil.subKeyExist(Microsoft.Win32.Registry.LocalMachine.OpenSubKey("Software"), "Ahead")
Cet exemple vérifie l'existance de la sous-clé "Ahead" dans la clé-registre HKEY_LOCAL_MACHINE\Software

Source / Exemple :


Public Class RegistryUtil
    'Copie récursive des clés et valeurs
    Public Shared Sub copyTreeKey(ByVal regSource As Microsoft.Win32.RegistryKey, ByVal regDest As Microsoft.Win32.RegistryKey)
        copyValues(regSource, regDest) 'Copie des valeurs de la clé en cours
        For Each sKey As String In regSource.GetSubKeyNames 'Création et parcours des sous-clés
            copyTreeKey(regSource.OpenSubKey(sKey), regDest.CreateSubKey(sKey))
        Next
        regSource.Close()
        regDest.Close()
    End Sub

    'Copie des valeurs d'une clé
    Public Shared Sub copyValues(ByVal regSource As Microsoft.Win32.RegistryKey, ByVal regDest As Microsoft.Win32.RegistryKey)
        For Each sKey As String In regSource.GetValueNames 'Parcours des valeurs
            regDest.SetValue(sKey, regSource.GetValue(sKey))
        Next
    End Sub

    'Vérifie l'existance d'une clé
    Public Shared Function subKeyExist(ByVal regSource As Microsoft.Win32.RegistryKey, ByVal sSubKey As String) As Boolean
        For Each sKey As String In regSource.GetSubKeyNames 'Parcours des sous-clés
            If sKey.ToUpper() = sSubKey.ToUpper() Then Return True
        Next
        Return False
    End Function
End Class

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.