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 :
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 :
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.
Partager