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

C# Discussion :

Comment Récupérer la liste des drivers ODBC selon le type de la machine


Sujet :

C#

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    350
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 350
    Points : 130
    Points
    130
    Par défaut Comment Récupérer la liste des drivers ODBC selon le type de la machine
    Bonjour,

    J'ai une application WPF en C#,mon besoin et de récupérer la liste des driver ODBC installés sur la machine, j'ai utilisé cette fonction :

    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
     /// <summary>
            /// fonction qui renvoie la liste des ODBC installés.
            /// </summary>
            /// <returns></returns>
            public List<string> GetSystemDriverList()
            {
                //string os_platform = System.Environment.OSVersion.Platform.ToString();
     
                //bool type = System.Environment.Is64BitOperatingSystem;
     
                List<string> names = new List<string>();
                // get system dsn's
                Microsoft.Win32.RegistryKey reg = (Microsoft.Win32.Registry.LocalMachine).OpenSubKey("Software");
                if (reg != null)
                {
                    reg = reg.OpenSubKey("ODBC");
                    if (reg != null)
                    {
                        reg = reg.OpenSubKey("ODBCINST.INI");
                        if (reg != null)
                        {
     
                            reg = reg.OpenSubKey("ODBC Drivers");
                            if (reg != null)
                            {
                                // Get all DSN entries defined in DSN_LOC_IN_REGISTRY.
                                foreach (string sName in reg.GetValueNames())
                                {
                                    names.Add(sName);
                                }
                            }
                            try
                            {
                                reg.Close();
                            }
                            catch { /* ignore this exception if we couldn't close */ }
                        }
                    }
                }
     
                return names;
            }
    ça marche bien dans une machine 32bits, mais le problème que j'ai c'est que dans une machine 64bits elle affiche les drivers ODBC 64 bits.

    Ce que je veux faire c'est que si on' est dans une machine 32 bits on affiche la liste des drivers (ça marche actuellement), mais si on' est dans une machine 64bits, je veux l'obliger à m'envoyer les drivers 32bits et non 64bits.

    j'ai trouvé cette instruction pour détecter si je suis dans une machine 64bits :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    bool type = System.Environment.Is64BitOperatingSystem;
    Mais je vois pas comment l'obliger de m'envoyer les drivers 32bits dans ce cas.

    Merci d'avance pour votre aide.

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Les drivers ODBC 32 Bits sont référencés dans la clef de registre suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    COMPUTER\HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\ODBC\ODBCINST.INI
    (source)
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

Discussions similaires

  1. comment récupérer le liste des tables et des champs
    Par sekaijin dans le forum PostgreSQL
    Réponses: 9
    Dernier message: 26/07/2006, 16h26
  2. [C#] Comment récupérer la liste des serveurs MSSQL?
    Par sorcer1 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 31/01/2006, 18h06
  3. Comment récupérer la liste des contacts de outlook express?
    Par arnaud_verlaine dans le forum Outlook Express / Windows Mail
    Réponses: 6
    Dernier message: 12/10/2004, 15h53
  4. [MAP] comment récupérer la liste des clé ordonnées
    Par Alec6 dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 21/07/2004, 16h37
  5. Comment récupérer la liste des logiciels installés sur une machine ?
    Par david_chardonnet dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 19/09/2003, 17h41

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