码迷,mamicode.com
首页 > 编程语言 > 详细

C++ 读取 Windows 注册表值

时间:2015-03-07 18:30:35      阅读:375      评论:0      收藏:0      [点我收藏+]

标签:

Windows 的注册表值有多种类型,如下图:

技术分享

技术分享

图一是 REG_SZ 类型的注册表键值。图二是REG_DWORD 类型的。一下分别给出读这两种类型键值的程序:

// 读取 REG_SZ 类型键值的代码

HKEY hKey = NULL; DWORD dwSize = 0; DWORD dwDataType = 0; LPBYTE lpValue = NULL; LPCTSTR const lpValueName = _T("TcpPort"); LONG lRet = ::RegOpenKeyEx(HKEY_LOCAL_MACHINE, _T("SOFTWARE\\Microsoft\\MSSQLServer\\MSSQLServer\\SuperSocketNetLib\\Tcp"), 0, KEY_QUERY_VALUE, &hKey); if(ERROR_SUCCESS != lRet) { // Error handling (see this FAQ) // return; } // Call once RegQueryValueEx to retrieve the necessary buffer size ::RegQueryValueEx(hKey, lpValueName, 0, &dwDataType, lpValue, // NULL &dwSize); // will contain the data size // Alloc the buffer lpValue = (LPBYTE)malloc(dwSize); // Call twice RegQueryValueEx to get the value lRet = ::RegQueryValueEx(hKey, lpValueName, 0, &dwDataType, lpValue, &dwSize); ::RegCloseKey(hKey); if(ERROR_SUCCESS != lRet) { // Error handling // return; } // Enjoy of lpValue... cout << "port ----------------------- " << lpValue << endl; // free the buffer when no more necessary free(lpValue);

// 此段代码来源:http://forums.codeguru.com/showthread.php?247020-Windows-SDK-Registry-How-can-I-read-data-from-the-registry&s=
// 读取 REG_DWORD 类型的注册表键值代码

long
lRet; HKEY hKey; DWORD port; DWORD dwType = REG_DWORD; DWORD dwValue; lRet = RegOpenKeyEx( HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\MSSQLServer\\Client\\SuperSocketNetLib\\Tcp", 0, KEY_QUERY_VALUE, &hKey ); //打开注册表 if(lRet == ERROR_SUCCESS)//读操作成功 { lRet = RegQueryValueEx( hKey, "DefaultPort", 0, &dwType, (LPBYTE)&port, &dwValue ); //如果打开成功,则读 if(lRet == ERROR_SUCCESS) { printf("\n打开成功,则读:"); cout << "DefaultPort: " << port << endl; //mcfile << "DefaultPort: " << port << endl; mcfile << "<port>" << port << "</port>" << endl; } //以下是读取失败 else { printf("\n读取失败:"); } } //以下是打开失败 else { printf("\n打开失败:"); } RegCloseKey(hKey);//记住,一定要关闭

 

可能的头文件:

#include <winsock2.h>
#include <Windows.h>

 

C++ 读取 Windows 注册表值

标签:

原文地址:http://www.cnblogs.com/duanguyuan/p/4320604.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!