IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Lire un DWORD de HKLM


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2007
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 80
    Par défaut Lire un DWORD de HKLM
    Je n'arrive pas à lire la cle"AutoRestartShell" de
    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon
    J'utilise la fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Function Lecture_Reg(Clef As String, Sous_clef As String) As String 
        If My.Computer.Registry.GetValue(Clef, Sous_clef, Nothing) Is Nothing Then                      
            ' test si la clef Clef & "\" & Sous_Clef existe
            MsgBox("La clé " & Sous_clef & " de " & Chr(13) & Clef & "  n'existe pas")
        End If
        Return My.Computer.Registry.GetValue(Clef, Sous_clef, Nothing) 
    End Function
    J'obtiens toujours la valeur nothing (=0) bien que AutoRestartShell contienne 1..
    Je suis en VB.net 2012.. Merci de votre réponse

  2. #2
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    Attention, 0 =/= Nothing.

    Dans ton cas Nothing te sort la msgbox, mais zero ne devrais pas te la sortir. Si tu as 0, c'est que c'est la clé qu'il a récupéré, sinon ça devrait peut-être être la valeur par défaut que tu as choisi en paramètre (Nothing).

    On peut voir le code qui utilise la fonction lecture_reg et les paramètres que tu lui passes ?


    EDIT: Pour ma part, je récupère 1 ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     MsgBox(My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon", "AutoRestartShell", Nothing))

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    J'ai fait le test et j'obtiens la même chose. En fait, c'est parce que quand un programme 32 bits essaie d'accéder à HKEY_LOCAL_MACHINE\SOFTWARE sur un OS 64bits, toutes les requêtes sont redirigées vers HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node. Si ton programme était en 64bits, ça fonctionnerait sans problème.

    La solution est d'indiquer explicitement que tu veux accéder à la vue 64bits :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Using hklm = Microsoft.Win32.RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64)
        Using winLogon = hklm.OpenSubKey("SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon")
            Dim value = winLogon.GetValue("AutoRestartShell")
        End Using
    End Using

Discussions similaires

  1. Le grand mode d'emploi du forum, à lire si vous souhaitez tout savoir !
    Par Anomaly dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 03/06/2013, 17h36
  2. [Lazarus] Comment lire HKLM Win64 avec une appli Win32 ?
    Par alanglet dans le forum Lazarus
    Réponses: 2
    Dernier message: 25/08/2011, 00h32
  3. comment lire un DWORD
    Par Mat26_ dans le forum C++
    Réponses: 2
    Dernier message: 27/09/2007, 14h29
  4. Lire 1 bit d'un fichier en C
    Par Anonymous dans le forum C
    Réponses: 3
    Dernier message: 23/05/2002, 18h31
  5. lire une image au format RAW
    Par Anonymous dans le forum OpenGL
    Réponses: 5
    Dernier message: 20/05/2002, 00h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo