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

Python Discussion :

Lecture clé registre Inaccessible


Sujet :

Python

  1. #1
    Membre confirmé Avatar de Thierry_V
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Août 2013
    Messages : 153
    Par défaut Lecture clé registre Inaccessible
    Bonjour,

    je voudrais savoir comment lire les clés : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\

    elle existe dans mon registre mais regedit ne l'a montre pas ?

    merci

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 814
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 814
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Thierry_V Voir le message
    je voudrais savoir comment lire les clés : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\
    elle existe dans mon registre mais regedit ne la montre pas ?
    Bonjour

    Y a-t-il un rapport avec le langage Python ???
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Membre confirmé Avatar de Thierry_V
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Août 2013
    Messages : 153
    Par défaut
    Bonjour,

    oui mais c'est de ma faute pour cette clé (j'utilisais l'ouverture de clé à partir d'un soft pour éviter de chercher et l'empilage de fenêtre a fait que..) par contre les extensions google chrome qui elles existent bien et pas de lecture possible HKLM\SOFTWARE\Google\Chrome\Extensions\ alors que le code est le même pour toutes les clés qui fonctionnent bien.

    merci

    exemple de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    try:
           regHandle = _winreg.OpenKey( _winreg.HKEY_LOCAL_MACHINE,'HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0',0, _winreg.KEY_READ)
           Intelproces, value = _winreg.QueryValueEx(regHandle,'ProcessorNameString')
           text2.insert(END,u'Nom processeur ........ : '+Intelproces+'\n\r')
    except EnvironmentError as err:
            text2.insert(END,u'Lecture impossibles'+'\n\r')
            pass
    _winreg.CloseKey(regHandle)

  4. #4
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Je ne suis pas familier de ce genre de sport (et j'évite même soigneusement de toucher au registre), mais on peut lire le registre de Windows avec le module Python "winreg".

    Voilà un petit exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    # Python 3
     
    import winreg
     
    #############################################################################
    def lireregistre(key, subkey, name=None):
     
        try:
            fkey = winreg.OpenKey(key, subkey) 
        except Exception as err:
            return str(err) # arrêt anormal: on renvoie le message d'erreur
        result, i = [], 0
        while True:                                           
            try:
                n, v, t = winreg.EnumValue(fkey, i)
                if name!=None and name==n:
                    return [n, v, t]
                result.append([n, v, t])
            except EnvironmentError:                                               
                break # arrêt normal: il n'y a plus de clé à lire
            except Exception as err:
                return str(err) # arrêt anormal: on renvoie le message d'erreur
            i += 1          
        winreg.CloseKey(fkey) 
        return result 
     
    #############################################################################
    if __name__ == '__main__':
     
     
        key = winreg.HKEY_LOCAL_MACHINE
        print(key)
        subkey = r"SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
        print(subkey)
        print()
     
        result = lireregistre(key, subkey)
     
        if isinstance(result, str):
            print("Erreur:", result)
        else:    
            for element in result:
                print(element)
    Ce qui retourne quelque chose comme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    ...
    ...
    ['iTunesHelper', '"C:\\Program Files (x86)\\iTunes\\iTunesHelper.exe"', 1]
    ['SunJavaUpdateSched', '"C:\\Program Files (x86)\\Common Files\\Java\\Java Update\\jusched.exe"', 1]
    ...
    ...
    Le dernier chiffre correspond au type de valeur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    winreg.REG_NONE => 0
    winreg.REG_SZ => 1
    winreg.REG_EXPAND_SZ => 2
    winreg.REG_BINARY => 3
    winreg.REG_DWORD => 4
    winreg.REG_DWORD_LITTLE_ENDIAN => 4
    winreg.REG_DWORD_BIG_ENDIAN => 5
    winreg.REG_LINK => 6
    winreg.REG_MULTI_SZ => 7
    winreg.REG_RESOURCE_LIST => 8
    winreg.REG_FULL_RESOURCE_DESCRIPTOR => 9
    winreg.REG_RESOURCE_REQUIREMENTS_LIST => 10
    Il y a cependant quelque chose d'inattendu: les clés et valeurs retournées par le code Python ne correspondent pas à ce qu'on lit dans le registre!

    Cela provient du fait que je suis avec un Windows 64bits: Quand je cherche à lire ici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    r"SOFTWARE\Microsoft\Windows\CurrentVersion\Run"
    Le code me renvoie ce qui se trouve ici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    r"SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Run"
    Ce qui coïncide, cette fois avec regedit.

    Plus d'infos ici sur ce point: http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx

  5. #5
    Membre confirmé Avatar de Thierry_V
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Août 2013
    Messages : 153
    Par défaut
    Bonjour,

    Humm oui, en 64 bits cette clé permet la compatibilité avec un 32 bits si je ne me trompe pas
    je ne fais que de lire le registre donc pas de souci, c'est une mine d'information sur le fonctionnement de windows, intéressant..
    merci tyrtamos je regarde cela

  6. #6
    Membre confirmé Avatar de Thierry_V
    Homme Profil pro
    Inscrit en
    Août 2013
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Territoire de Belfort (Franche Comté)

    Informations forums :
    Inscription : Août 2013
    Messages : 153
    Par défaut
    Re

    Oui c'est bien ça, je dois passer par cette clé 64 bits
    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. RegEnumValue() pour la lecture de registre
    Par scarlaty dans le forum Windows
    Réponses: 5
    Dernier message: 28/02/2008, 09h04
  2. Lecture du Registre Windows
    Par mourbare dans le forum Windows
    Réponses: 2
    Dernier message: 27/02/2008, 08h42
  3. Lecture du registre style parseur
    Par Verbalinsurection dans le forum C++
    Réponses: 4
    Dernier message: 19/10/2007, 15h15
  4. [CR9] Lecture du registre
    Par exyacc dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 04/11/2005, 11h17
  5. Réponses: 4
    Dernier message: 23/07/2003, 13h07

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