实现方式:利用Microsoft.win32类提供的注册表类访问系统注册表获取ODBC数据服务列表。
具体实现:
Microsoft.win32提供了RegistryKey类,用来访问系统的注册表。
///定义注册表子Path
string strRegPath = @"SOFTWARE\ODBC\ODBC.INI\ODBC Data Sources";
///创建两个RegistryKey类,一个将指向Root Path,另一个将指向子Path
RegistryKey regRootKey;
RegistryKey regSubKey;
///定义Root指向注册表HKEY_LOCAL_MACHINE节点
regRootKey = Registry.LocalMachine;
///Registry枚举类提供了以下几种
/*
Registry.ClassesRoot-------------->指向注册表HKEY_CLASSES_ROOT节点
Registry.CurrentConfig-------------->指向注册表HKEY_CURRENT_CONFIG节点
Registry.CurrentUser-------------->指向注册表HKEY_CURRENT_USER节点
Registry.DynData-------------->指向注册表HKEY_DYN_DATA节点(动态注册表数据)
Registry.LocalMachine-------------->指向注册表HKEY_LOCAL_MACHINE节点
Registry.PerformanceData-------------->指向注册表HKEY_PERFORMANCE_DATA节点
Registry.Users-------------->指向注册表HKEY_USERS节点
*/
regSubKey = regRootKey.OpenSubKey(strRegPath);
string[] strDSNList = regSubKey.GetValueNames();
///关闭
regSubKey.Close();
regRootKey.Close();
这样就实现了DSN Service List的读取。