|
|
|
发新文章 |
|
|
HKEY hKey; 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 当前打开键的句柄或下列预定义保留的句柄值: 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 // 键的最近写入时间的地址 );
|