Vérifier l'existence clé registre [Résolu]

edwinzap 159 Messages postés samedi 29 septembre 2012Date d'inscription 21 juin 2016 Dernière intervention - 20 déc. 2013 à 12:19 - Dernière réponse : edwinzap 159 Messages postés samedi 29 septembre 2012Date d'inscription 21 juin 2016 Dernière intervention
- 20 déc. 2013 à 17:15
Bonjour,

Voici mon problème. En cherchant comment faire pour manipuler le registre, j'ai réussi à faire ce code:
Private Sub DémarrageAuto_True()
        Try

            Dim Cle As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run", True)
            Cle.SetValue("Compteur", My.Application.Info.DirectoryPath & "\Compteur.exe")

        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub


Je crée ainsi la clé dans le registre.

Je voudrais vérifier l'existence de cette clé avec ce code:
Try
                DémarrageAuto_True()
                Dim test As Microsoft.Win32.RegistryKey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run\Compteur", True)

                If test Is Nothing Then
                    MsgBox("la clé n'existe pas")
                Else
                    MsgBox("la clé existe")
                End If
            Catch ex As Exception
                MsgBox(ex.ToString)
            End Try


Le test me renvoit à chaque fois Nothing alors que je viens juste de la créer !!!

Aidez moi svp, merci !
Afficher la suite 

Votre réponse

5 réponses

jordane45 22906 Messages postés mercredi 22 octobre 2003Date d'inscriptionContributeurStatut 21 octobre 2018 Dernière intervention - 20 déc. 2013 à 12:48
0
Merci
Bonjour,
Essayes peut-être de doubler les anti-Slash.
Commenter la réponse de jordane45
jordane45 22906 Messages postés mercredi 22 octobre 2003Date d'inscriptionContributeurStatut 21 octobre 2018 Dernière intervention - 20 déc. 2013 à 12:57
Commenter la réponse de jordane45
edwinzap 159 Messages postés samedi 29 septembre 2012Date d'inscription 21 juin 2016 Dernière intervention - 20 déc. 2013 à 14:38
0
Merci
J'ai tout regarder, et ça ne marche tjrs pas !
J'ai modifié le code:

Création de la clé:
            Dim Cle As RegistryKey = Registry.CurrentUser.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run")
            Cle.SetValue("Compteur", My.Application.Info.DirectoryPath & "\Compteur.exe", RegistryValueKind.String)


Vérification que la clé existe:
                Dim value As String
                value = Microsoft.Win32.Registry.CurrentUser.GetValue("Software\\Microsoft\\Windows\\CurrentVersion\\Run\\Compteur")

                If value IsNot Nothing Then
                    MsgBox("la clé existe")
                Else
                    MsgBox("la clé n'existe pas")
                End If


Il me renvoi tjrs Nothing !
Commenter la réponse de edwinzap
cs_Le Pivert 5454 Messages postés jeudi 13 septembre 2007Date d'inscriptionContributeurStatut 20 octobre 2018 Dernière intervention - 20 déc. 2013 à 15:33
0
Merci
Bonjour,

Essaie cela:

 Dim test As Microsoft.Win32.RegistryKey = My.Computer.Registry.CurrentUser.OpenSubKey("Software\Microsoft\Windows\CurrentVersion\Run\Compteur",False)
If test Is Nothing Then
MsgBox("la clé existe")
Else
MsgBox("la clé n'existe pas")
End If

Il faut essayer d'ouvrir la clé pour voir si elle existe!
Commenter la réponse de cs_Le Pivert
edwinzap 159 Messages postés samedi 29 septembre 2012Date d'inscription 21 juin 2016 Dernière intervention - 20 déc. 2013 à 17:15
0
Merci
Effectivement, il fallait essayer d'ouvrir la clé. Merci à Jordane45 pour les liens. Cela m'a fortement aidé.
En fait je ne comprenais pas correctement la hiérarchie de la base de registre. Voici mon code:

Dim key = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run", True)
            Dim value = key.GetValue("compteur")
            If value Is Nothing Then
                key = Microsoft.Win32.Registry.CurrentUser.CreateSubKey("Software\\Microsoft\\Windows\\CurrentVersion\\Run")
                key.SetValue("Compteur", My.Application.Info.DirectoryPath & "\Compteur.exe", RegistryValueKind.String)
                key.Close()
                Me.DémarrageAutoToolStripMenuItem.Text = "&Désactiver"
            Else
                key.DeleteValue("Compteur")
                Me.DémarrageAutoToolStripMenuItem.Text = "&Activer"
            End If


Encore merci !

Sujet résolu, mais je suis tjrs preneur pour des améliorations du code !
Commenter la réponse de edwinzap

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.