`
阿尔萨斯
  • 浏览: 4196121 次
社区版块
存档分类
最新评论

Windows API一日一练(65)RegQueryValueEx函数

 
阅读更多
<iframe align="center" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog.html" frameborder="0" width="728" scrolling="no" height="90"></iframe>
上一次介绍怎么样保存数据到注册表里,这次就需要从注册表里读取数据出来了。在这个例子里是读取字符串数据出来,主要调用函数RegQueryValueEx来实现。下面的例子里就是先查询键值的长度,然后再读取内容出来。
函数RegQueryValueEx声明如下:
WINADVAPI
LONG
APIENTRY
RegQueryValueExA (
__in HKEY hKey,
__in_opt LPCSTR lpValueName,
__reserved LPDWORD lpReserved,
__out_opt LPDWORD lpType,
__out_bcount_opt(*lpcbData) LPBYTE lpData,
__inout_opt LPDWORD lpcbData
);
WINADVAPI
LONG
APIENTRY
RegQueryValueExW (
__in HKEY hKey,
__in_opt LPCWSTR lpValueName,
__reserved LPDWORD lpReserved,
__out_opt LPDWORD lpType,
__out_bcount_opt(*lpcbData) LPBYTE lpData,
__inout_opt LPDWORD lpcbData
);
#ifdef UNICODE
#define RegQueryValueExRegQueryValueExW
#else
#define RegQueryValueExRegQueryValueExA
#endif // !UNICODE
hKey是主键。
lpValueName是键值名称。
lpType是类型。
lpData是读出来数据保存地方。
lpcbData是读取数据多少。
调用函数的例子如下:
#001//打注册表返回值。HKEY_CURRENT_USER/"Software"/"Wincpp"/"testreg"
#002// /"Windows"//"winsize" = "800*600"
#003//蔡军生2007/11/05 QQ:9073204 深圳
#004std::wstring GetProfileString(LPCTSTR lpszSection, LPCTSTR lpszEntry,
#005 LPCTSTR lpszDefault)
#006{
#007 //打开应用程序键。
#008 HKEY hAppKey = GetAppRegistryKey();
#009 if (hAppKey == NULL)
#010 {
#011 return lpszDefault;
#012 }
#013
#014 HKEY hSecKey = NULL;
#015 DWORD dw;
#016
#017 //打开子键。
#018 RegCreateKeyEx(hAppKey, lpszSection, 0, REG_NONE,
#019 REG_OPTION_NON_VOLATILE, KEY_WRITE|KEY_READ, NULL,
#020 &hSecKey, &dw);
#021 RegCloseKey(hAppKey);
#022
#023 if (hSecKey == NULL)
#024 {
#025 return lpszDefault;
#026 }
#027
#028 //查询键值。
#029 std::wstring strValue;
#030 DWORD dwType=REG_NONE;
#031 DWORD dwCount=0;
#032
#033 //先查询键值的长度。
#034 LONG lResult = RegQueryValueEx(hSecKey, (LPTSTR)lpszEntry, NULL, &dwType,
#035 NULL, &dwCount);
#036 if (lResult == ERROR_SUCCESS)
#037 {
#038 strValue.resize(dwCount);
#039
#040 //查询键值。
#041 lResult = RegQueryValueEx(hSecKey, (LPTSTR)lpszEntry, NULL, &dwType,
#042 (LPBYTE)strValue.data(), &dwCount);
#043
#044 }
#045
#046 RegCloseKey(hSecKey);
#047 if (lResult == ERROR_SUCCESS)
#048 {
#049 return strValue;
#050 }
#051
#052 return lpszDefault;
#053}



分享到:
评论

相关推荐

    API之网络函数---整理网络函数及功能

    CreateScalableFontResource 为一种TureType字体创建一个资源文件,以便能用API函数AddFontResource将其加入Windows系统 DrawText 将文本描绘到指定的矩形中 DrawTextEx 与DrawText相似,只是加入了更多的功能 ...

    VC RegQueryValueEx注册表读取写入操作范例.rar

    与大家分享一个VC 简单操作注册表的范例,主要... 涉及到VC 中的RegQueryValueEx函数、RegCloseKey、RegDeleteKey、RegCreateKey等函数,这些函数在VC 中,是比较常见的操作注册表的函数,很有必要掌握使用技巧哦。

    中文API支持库(1.0-0

    注解:在采用FAT16格式的windows95系统中,如一个驱动器(分区)的容量超过了2GB,则不应使用这个函数。此时,这个函数能识别的最大分区容量只有2GB。 _取驱动器类型() 判断一个磁盘驱动器的类型。返回值,如驱动器...

    易语言HOOK3API

    HOOK3API 的一个易语言源码例子

    AddReg.rar

    用WindowsAPI实现注册表的新增,读取,删除 3种操作。 使用函数:RegOpenKeyExA RegSetValueExA RegQueryValueEx RegDeleteValue

    读写注册表函数

    读写注册表函数RegOpenKeyEx、RegQueryValueEx、RegCreateKeyEx、RegSetValueEx、RegDeketeKey

    注册表操作函数

    注册表的打开,查询,创建,删除等操作; RegOpenKeyEx RegQueryValueEx RegCloseKey

    易语言读取64位注册表

    易语言读取64位注册表源码,读取64位注册表,读取32位注册表键值,读取64位注册表键值,API_Wow64DisableWow64FsRedirection,API_Wow64RevertWow64FsRedirection,API_RegOpenKeyEx,API_RegQueryValueEx,API_...

    WinAPI (Delphi版)

    Creating Windows CreateMDIWindow CreateWindow CreateWindowEx RegisterClass RegisterClassEx UnregisterClass Message Processing BroadcastSystemMessage CallNextHookEx CallWindowProc...

    修改计算机名字的小工具

    通过制作这个小工具清楚了RegOpenKeyEx、RegQueryValueEx、RegSetValueEx三个函数的用法

    易语言读写多字符的注册表项

    易语言读写多字符的注册表项源码,读写多字符的注册表项,RegCloseKey,RegQueryValueExA,RegOpenKeyExA,RegSetValueExA

    System Hardware Information Finder

    We will make use of RegQueryValueEx API call to get the information. LONG RegQueryValueEx( HKEY hKey, // handle to key to query LPTSTR lpValueName, // address of name of value to query LPDWORD ...

    易语言桌面文字透明模块

    易语言桌面文字透明模块源码,桌面文字透明模块,透明桌面文字,API_写整数注册表,SendMessage,RegCreateKey,RegOpenKey,RegQueryValueEx,RegCloseKey,RegSetValueEx,lstrlen_整数,lstrcpyn

    读写注册表信息

    写注册表, 两个函数: ...读注册表, 函数:RegOpenKeyEx, RegQueryValueEx 读写注册表要注意访问标志,常用的有: 1,可增加子键: KEY_CREATE_SUB_EY 2. 可增加键值项:KEY_SET_VALUE 3.可查询键值项:KEY_QUERY_VALUE

    VB注册表相关源码示例学习43个

    压缩包内共有43个VB操作注册表的源码,极为实用 包括: 进入winxp前发出警告 ...注册表随WINDOWS自动启动 RegQueryValueEx读取注册表的数据 RegQueryValueEx读取软件试用次数 …… ……等共43个文件夹,43个源码实例

    操作注册表,软件自启动

    文档上有注册表的相关操作,包括RegOpenValueEx,RegQueryValueEx,RegSetValueEx,RegDeleteValueEx,RegCreateValueEx等等

    易语言取系统信息

    易语言取系统信息源码,取系统信息,GetCPUSpeed,HiByte,LoByte,GetSystemInfo,RegCloseKey,RegOpenKey,RegQueryValueEx

    易语言注册表项子键处理

    易语言注册表项子键处理源码,注册表项子键处理,RegOpenKeyA,RegSetValueExA,RegQueryValueEx,RegCloseKey,RegCreateKeyA,RegDeleteKey

    易语言网络连接启动

    易语言网络连接启动源码,网络连接启动,StateChange,IsClassNet,设置网络状态,SetupDiOpenClassRegKey,RegQueryValueEx,RegCloseKey,lstrcmpi,SetupDiGetClassDevs,SetupDiEnumDeviceInfo,LoadCursor,SetCursor,...

Global site tag (gtag.js) - Google Analytics