[FAQ]VC读取数据源列表和驱动程序列表
数据源信息存放在
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI
驱动程序信息存放在
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI
附:
RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\ODBC\\ODBC.INI",0,KEY_READ,&hKey);
DWORD dwSubKeyCount,dwMaxSubKeyNameLength;
RegQueryInfoKey(hKey,NULL,NULL,NULL,&dwSubKeyCount,&dwMaxSubKeyNameLength,NULL,NULL,NULL,NULL,NULL,NULL);
long index = 0;
char* szSubKeyName = new char[dwMaxSubKeyNameLength+1];
DWORD dwSubKeyName;
for (index=0;index<(long)dwSubKeyCount;index++)
{
RegEnumKeyEx(hKey,index,szSubKeyName,&dwSubKeyName,NULL,NULL,NULL,NULL);
}
RegCloseKey(hKey);
RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\ODBC\\ODBC.INI\\ODBC Data Sources",0,KEY_READ,&hKey);
DWORD dwValueCount,dwMaxValueNameLength;
RegQueryInfoKey(hKey,NULL,NULL,NULL,NULL,NULL,NULL,&dwValueCount,&dwMaxValueNameLength,NULL,NULL,NULL);
char* szValueName = new char[dwMaxValueNameLength+1];
DWORD dwValueName;
for (index=0;index<(long)dwValueCount;index++)
{
RegEnumValue(hKey,index,szValueName,&dwValueName,NULL,NULL,NULL,NULL);
}
RegCloseKey(hKey);
当前打开键的句柄或下列预定义保留的句柄值:
HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
samDesired
制定一个访问标记以描述访问新键的安全性
此参数可以是下列值的一个联合
KEY_ALL_ACCESS
KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS, KEY_NOTIFY, KEY_CREATE_SUB_KEY, KEY_CREATE_LINK, 和 KEY_SET_VALUE 访问的联合.
KEY_CREATE_LINK
允许创建严格符号的链接.
KEY_CREATE_SUB_KEY
允许创建子键.
KEY_ENUMERATE_SUB_KEYS
允许枚举子键.
KEY_EXECUTE
允许读访问.
KEY_NOTIFY
允许改变通知.
KEY_QUERY_VALUE
允许查询子键的数据.
KEY_READ
KEY_QUERY_VALUE, KEY_ENUMERATE_SUB_KEYS, 和 KEY_NOTIFY 访问的联合.
KEY_SET_VALUE
允许设置子键的数据.
KEY_WRITE
KEY_SET_VALUE 和 KEY_CREATE_SUB_KEY 访问的联合.
LONG RegOpenKeyEx(
HKEY hKey, // 待打开的键的句柄
LPCTSTR lpSubKey, // 待打开的子键名称的地址
DWORD ulOptions, // 保留的,必须为0.
REGSAM samDesired, // 安全访问标记
PHKEY phkResult // 待打开的键的句柄的地址
);
LONG RegQueryInfoKey(
HKEY hKey, // 待查询的键的句柄
LPTSTR lpClass, // 类字符串缓冲器地址
LPDWORD lpcbClass, // 类字符串缓冲器大小的地址
LPDWORD lpReserved, // 保留的,必须为 NULL.
LPDWORD lpcSubKeys, // 子键数目缓冲器的地址
LPDWORD lpcbMaxSubKeyLen, // 最长的子键名称长度缓冲器的地址
LPDWORD lpcbMaxClassLen, // 最长的类字符串长度缓冲器的地址
LPDWORD lpcValues, // 值项数目缓冲器的地址
LPDWORD lpcbMaxValueNameLen, // 最长的值名称长度缓冲器的地址
LPDWORD lpcbMaxValueLen, // 最长的值数据长度缓冲器的地址
LPDWORD lpcbSecurityDescriptor, // 安全描述符长度缓冲器的地址
PFILETIME lpftLastWriteTime // 最近写入时间缓冲器的地址
);
LONG RegEnumKeyEx(
HKEY hKey, // 待枚举的键的句柄
DWORD dwIndex, // 待枚举的子键的索引
LPTSTR lpName, // 子键名称缓冲器的地址
LPDWORD lpcbName, // 子键缓冲器大小的地址
LPDWORD lpReserved, // 保留的,必须为 NULL.
LPTSTR lpClass, // 类字符串缓冲器的地址
LPDWORD lpcbClass, // 类缓冲器大小的地址
PFILETIME lpftLastWriteTime // 键的最近写入时间的地址
);
[FAQ]VC读取数据源列表和驱动程序列表相关推荐
- R语言scan函数读取文件为向量或者列表格式实战
R语言scan函数读取文件为向量或者列表格式实战 目录 R语言scan函数读取文件为向量或者列表格式实战 #基本语法
- springboot动态多数据源配置和使用(从数据库读取数据源配置)(三)
上两遍已经描述了动态多数据源的原理和基础实现了,前面的数据源配置都是从application.yml中配置多数据源的,这里再拓展补充一下其他场景,如何读取数据源不从application.yml中配置 ...
- python列表分割_python列表分割
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! ①list从list列表下标a起取值,每次加b在取值,直到大于或等于list长度 ...
- linux元组和列表的区别,列表,元组,集合
一 列表 列表是可变类型的序列,而元组与字符串是不可变类型的序列 1.列表的定义: # 定义一个空列表 In [21]: list = [] In [22]: type(list)# 通过python ...
- python定义一个函数列表排序_Python 列表(修改、添加、删除、排序)
Python的基本数据类型有整数,浮点数,布尔,字符串,它们是最基本的数据.在实际编程中,我们要经常组织由很多基本数据组成的集合,这些集合的不同组织方式就是:数据结构,今天讲的是数据结构中的Pytho ...
- 鸿蒙的应用列表,图解鸿蒙列表组件ListContainer
一.什么是ListContainer ListContainer是用来呈现连续.多行数据的列表组件,包含一系列相同类型的列表项.如下图所示: 二.ListContainer的架构视图 ListCont ...
- 舔狗是这样实现列表过滤和列表排序滴
如果你是一个舔狗,又不会写舔狗日记,又恰好会一点点Vue的话,恭喜你这篇舔狗拯救手册可以帮助你顺利处到 {} 干活干活!首先搭建好Vue基本模板 <body><div id=&quo ...
- python分析微博粉丝_新浪微博Python SDK笔记——获取粉丝列表或关注列表 | 学步园...
上一节中创建了一个initclient包,封装了授权的过程,通过获取的myAPIClient对象可以直接调用API接口进行微博操作,上一节中就调用了发微博的接口发了一条新微博.这一节还是直接使用ini ...
- linux 查看文件列表,linux显示文件列表命令ls,使用ls --help列出所有命令参数
ls命令的相关参数 在提示符下输入ls --help ,屏幕会显示该命令的使用格式及参数信息: 先介绍一下ls命令的主要参数: -a 列出目录下的所有文件,包括以 . 开头的隐含文件. -A 显示除 ...
最新文章
- php 数组接在数组后面,PHP array_splice()接合数组用法的简单介绍
- hdu5014 构造b数列使得t最大(小想法)
- pandas中的DataFrame数据结构
- 《疯狂JAVA讲义》3
- java后端开发每天遇到的jsp,了解一下
- 【转】oracle sequence
- 透明色代码是多少_北京宣传画册印刷多少钱
- Centos7.5-文件的归档和压缩
- 初识FPGA(搬运)
- rust 编程入门_面向初学者的Rust –最受欢迎的编程语言入门
- centos7下源码安装mysql5.6_Centos7 源码安装mysql5.6
- 初始化Metasploit-Framework
- 蓝湖 for Mac(自动切图sketch插件)中文版
- matlab的比较器模块,simulink中比较器
- GB2312-80 所有汉字排序-拼音
- 强密码生成器(C++)
- 流媒体服务器开源方案调研
- 使用pandas的merge出现Empty DataFrame 和 Index: []
- 世上真有后悔药,删除的数据文件可恢复,6款免费数据恢复软件
- UR机器人装箱姿态_ur机器人坐标系说明来了,感兴趣的朋友可以看看