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 :

Tester une valeur dans Windows Registry


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de MADA BLACK
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2015
    Messages
    268
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Décembre 2015
    Messages : 268
    Par défaut Tester une valeur dans Windows Registry
    Salut Tout le monde
    Svp Gentelman
    J'ai vraiment besoin d'aide afin de resoudre ce probleme
    Dans MDIParent1 .. je mis ce code dans Button Exit .. pour sauvegarder le theme choisit dans le registry Windows :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      Dim SkinName As Microsoft.Win32.RegistryKey
        SkinName = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE\Microsoft\Windows", True)
        SkinName.SetValue("SkinName", DevExpress.LookAndFeel.UserLookAndFeel.Default.SkinName.ToString())
        SkinName.Close()
    Et apres .. Dans ma Form Splash Screen j'ai mis mis ce code pour lire le nom du theme deja sauvegarde dans Windows Registry :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
        Dim SkinName As Microsoft.Win32.RegistryKey
        SkinName = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE\Microsoft\Windows", True)
        If SkinName IsNot Nothing Then
        DevExpress.LookAndFeel.UserLookAndFeel.Default.SkinName = SkinName.GetValue("SkinName").ToString()
        End If
    Jusqu'au ici .. tres normal et ca fonctionne tres bien ..
    Mon probleme est :
    Lorsque j'ai formaté completement ma machine .. alors j'ai eu une erreur car la valeur ( SkinName ) est vide ..
    Comment faire svp pour ajouter ces lignes .. si la valeur de registry est Null alors mon theme se sera comme ca par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
         DevExpress.Skins.SkinManager.EnableFormSkins()
                DevExpress.UserSkins.BonusSkins.Register()
                DevExpress.LookAndFeel.UserLookAndFeel.Default.SkinName = "Caramel"
    Si la valeur SkinName dans Registry Windows est vide alors le theme SkinName se sera ( Caramel ) .. Autrement se sera le theme choisit et enregistre lorsque je quitte le programme par Button Exit .
    Merci beaucoup d'avance pour l'aide
    Cordialement
    MADA

  2. #2
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonsoir Mada,

    La Registry, c'est pas mon fort ...

    Mais au cas où cela serait utile à la résolution de ton problème ...
    Si la clé n'existe plus suite à ton "formatage" du PC, tu peux la créer : la méthode SetValue crée la clé si elle n'existe pas.
    Mais je n'ai sans doute pas bien compris le problème ...

    Bonne soirée,


  3. #3
    Membre éclairé Avatar de MADA BLACK
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2015
    Messages
    268
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Décembre 2015
    Messages : 268
    Par défaut
    Bonsoir Cher Phil Rob
    Bonsoir Maitre
    En realite .. je n'ai aucun probleme sauf en cas de formatage du PC .
    Mille fois merci .. oui vous avez bien raison .. je peux la creer avec SetValue .. juste apres le formatage du PC .. Mais le probleme je veux dans toutes les cas faire apparaitre mon projet avec un theme meme apres formatage ..
    Svp .. si vous pouvez voir ce code .. j'ai essaye comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
           Dim SkinName As Microsoft.Win32.RegistryKey
            SkinName = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("SkinName")
            If SkinName IsNot Nothing Then
                DevExpress.Skins.SkinManager.EnableFormSkins()
                DevExpress.UserSkins.BonusSkins.Register()
                DevExpress.LookAndFeel.UserLookAndFeel.Default.SkinName = "Caramel"
            Else
                SkinName = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE\Microsoft\Windows", True)
                If SkinName IsNot Nothing Then
                    DevExpress.LookAndFeel.UserLookAndFeel.Default.SkinName = SkinName.GetValue("SkinName").ToString()
                End If
            End If
    Ce code fonctionne sans faute .. sans aucune erreur .. mais ce n'est pas normale .. normalement je dois ecrire (If SkinName Is Nothing Then) .. et si j'ecris (If SkinName Is Nothing Then) .. rien ne se change avec le theme Caramel
    Merci d'avance pour l'aide
    MADA

  4. #4
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Comme j'ai écrit, la registry n'est pas mon fort.
    Je regarderai demain si je trouve une idée.
    Mais en attendant, je m'interroge sur un détail : pour évaluer ta variable, ne dois-tu pas faire un GetValue sur ta clé ? OpenSubKey est-il suffisant ?
    Bonne nuit

  5. #5
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bonjour Mada,

    Il faut en effet lire les valeurs par GetValue. Voici un extrait de code et l'illustration de son résultat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
            Dim Cle As Microsoft.Win32.RegistryKey = My.Computer.Registry.CurrentUser
     
            Dim SCle As Microsoft.Win32.RegistryKey
            Dim Valeur As String
     
            SCle = Cle.OpenSubKey("Software\Adobe\Acrobat Distiller\10.0")
            Valeur = SCle.GetValue("JobOptions")
     
            MessageBox.Show(Valeur)
    Illustration :
    Nom : Registry.jpg
Affichages : 462
Taille : 165,0 Ko

    Pour ce qui est d'ajouter un clé ou d'écrire une valeur dans la registry, il faut l'indiquer dans la ligne OpenSubKey : SCle = Cle.OpenSubKey("Software\Adobe\Acrobat Distiller\10.0", TRUE).

    Voici le code complet de mes tests et l'illustration du résultat obtenu :
    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
     
    Imports Microsoft.Win32.Registry
    Public Class FTestSimple
     
        Private Sub FTestSimple_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
            Dim Cle As Microsoft.Win32.RegistryKey = My.Computer.Registry.CurrentUser
     
            Dim SCle As Microsoft.Win32.RegistryKey
     
     
            Dim Valeur As String
     
            SCle = Cle.OpenSubKey("Software\Adobe\Acrobat Distiller\10.0", True)  ' TRUE nécessaire pour pouvoir écrire
            Valeur = SCle.GetValue("JobOptions")
     
            ' Ajouter une valeur inexistante
            SCle.SetValue("UnTest", "Et voilà")
     
            ' Ajouter une sous clé à Software\Adobe\Acrobat Distiller\10.0 et y écrire une valeur
            Dim SousSCle As Microsoft.Win32.RegistryKey
            SousSCle = SCle.CreateSubKey("NomCleMada")
            SousSCle.SetValue("Test", "Mada black")
     
            MessageBox.Show(Valeur)
        End Sub
    End Class
    Nom : Registry2.jpg
Affichages : 420
Taille : 129,6 Ko


  6. #6
    Membre éclairé Avatar de MADA BLACK
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2015
    Messages
    268
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Décembre 2015
    Messages : 268
    Par défaut
    Bonjour Maitre
    Merci beaucoup pour l'aide
    Tres tres gentil de votre part
    Je vais essayer .. mais il faut attendre 1 ou 2 jours pour formater mon PC car je vais d'abord penser a mes divers fichiers
    Merci encore
    Amicalement
    MADA

  7. #7
    Membre éclairé Avatar de MADA BLACK
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Décembre 2015
    Messages
    268
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Décembre 2015
    Messages : 268
    Par défaut
    Bonjour Phil Rob
    Bonjour maitre
    Je vous remercie infiniment pour faire le premier pas
    Merci beaucoup pour l'aide
    Tres gentil de votre part
    J'ai supprime la valeur dans Windows Registry pour tester sans formater mon PC et c'est bien resolu avec ce code ..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
            If My.Computer.Registry.GetValue("HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows", "SkinName", Nothing) Is Nothing Then
                DevExpress.Skins.SkinManager.EnableFormSkins()
                DevExpress.UserSkins.BonusSkins.Register()
                DevExpress.LookAndFeel.UserLookAndFeel.Default.SkinName = "Caramel"
            Else
                Dim SkinName As Microsoft.Win32.RegistryKey
                SkinName = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE\Microsoft\Windows", True)
                DevExpress.Skins.SkinManager.EnableFormSkins()
                DevExpress.UserSkins.BonusSkins.Register()
                DevExpress.LookAndFeel.UserLookAndFeel.Default.SkinName = SkinName.GetValue("SkinName").ToString()
            End If
    Amicalement
    MADA

  8. #8
    Membre Expert Avatar de Phil Rob
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2013
    Messages
    1 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Novembre 2013
    Messages : 1 613
    Par défaut
    Bravo Mada !

    A la prochaine ...


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

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/08/2011, 09h11
  2. tester une valeur dans un PivotTable
    Par zskiredj dans le forum Macros et VBA Excel
    Réponses: 18
    Dernier message: 07/01/2011, 14h32
  3. [RegEx] tester une valeur dans un champ multivalué
    Par omarlet dans le forum Langage
    Réponses: 1
    Dernier message: 25/06/2010, 15h08
  4. [XSLT] Tester la non présence d'une valeur dans un fichier
    Par arnauann dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 23/01/2007, 15h29
  5. [vb excel]Tester une valeur dans une ligne
    Par Mugette dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/09/2005, 13h58

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