1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    juillet 2011
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : juillet 2011
    Messages : 135
    Points : 83
    Points
    83

    Par défaut [VBS]Chercher valeur exact dans une chaine du registre

    Bonjour

    J'essai de trouver comment faire pour comparer une données d'une clé du registre avec le nom exact, or la clé du registre contient d'avantage d'info...

    Dans la clé recherchée

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    strTemp = "HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0\Identifier"
    La donnée se retrouve sous la forme Intel64 Family 6 Model 78 Stepping 3


    Je veux donc comparer à Family 6 seulement (selon l'exemple) ou Family 5 ou Family 4

    J'ai essayé ceci...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Dim objShell, strTemp, strChaine
    			Set objShell = WScript.CreateObject("WScript.Shell")
    			strTemp = "HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0\Identifier"
    			strChaine = "Family 6"
    			if (strTemp) = (strChaine) Then
     
    			WScript.Echo "YES: " & objShell.RegRead(strTemp)
    			Else 
    			WScript.Echo "Not present "
    			End If
    Une piste à me suggérer merci

  2. #2
    Expert éminent
    Avatar de hackoofr
    Homme Profil pro
    Enseignant
    Inscrit en
    juin 2009
    Messages
    3 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : juin 2009
    Messages : 3 387
    Points : 8 179
    Points
    8 179

    Par défaut


    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
    Dim objShell, strTemp, strChaine
    Set objShell = WScript.CreateObject("WScript.Shell")
    strTemp = "HKEY_LOCAL_MACHINE\HARDWARE\DESCRIPTION\System\CentralProcessor\0\Identifier"
    Temp = objShell.RegRead(strTemp)
    Motif = "Family [4-6]"
    SousChaine = Extract(objShell.RegRead(strTemp),Motif)
     
    wscript.echo "Valeur depuis le registre est : " & vbcrlf & objShell.RegRead(strTemp)
    wscript.echo "Valeur lue après une extraction est : " & vbcrlf & SousChaine
     
    strChaine = "Family 6"
    If SousChaine = strChaine Then
        WScript.Echo "YES: " & objShell.RegRead(strTemp)
    Else 
        WScript.Echo "Not present "
    End If
    '**********************************************************
    Function Extract(Data,Motif)
        Dim oRE,oMatches,Match,Line
        set oRE = New RegExp
        oRE.IgnoreCase = True
        oRE.Global = True
        oRE.Pattern = Motif
        set oMatches = oRE.Execute(Data)
        If not isEmpty(oMatches) then
            For Each Match in oMatches   
                Line = Match.Value
                Extract = Line
            Next
        End if 
    End Function
    '**********************************************************

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    juillet 2011
    Messages
    135
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : juillet 2011
    Messages : 135
    Points : 83
    Points
    83

    Par défaut

    Citation Envoyé par hackoofr Voir le message
    Ce mec est un maître...Ça fait quelques fois qu'il arrive a solutionner mes interrogations et à chaque fois les exemples cités me sont des plus pédagogiques.

    Merci pour ton aide, l'exemple est bien comme je cherchais, je l'ai adapté à ce que je voulais...en l'intégrant à un .hta. Il me sert à définir si un PC est en fin de vie en validant la version de la famille auquel il appartient et à la quantité de RAM il possède, ces deux valeurs en plus de la vitesse du processeur et de la nécessité d'avoir une architecture x64 permet d'avoir un beau tableau informatif...

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

Discussions similaires

  1. récupérer une valeur numérique dans une chaine
    Par EFFLYINGJOKER dans le forum Développement
    Réponses: 2
    Dernier message: 30/03/2010, 16h26
  2. Recupérer valeur hexa dans une chaine ASCII
    Par OjBarbare dans le forum ASP.NET
    Réponses: 3
    Dernier message: 22/04/2009, 09h50
  3. Réponses: 2
    Dernier message: 31/03/2009, 15h48
  4. chercher un mot dans une chaine de caractere
    Par waldoun dans le forum Général Java
    Réponses: 2
    Dernier message: 17/05/2008, 23h30
  5. Remplacement d'une valeur hexa dans une chaine
    Par raoulchatigre dans le forum C++
    Réponses: 7
    Dernier message: 18/09/2006, 16h27

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