日期:2014-05-17  浏览次数:20702 次

请问如何获取注册表中的键值?
我想获取 "HKEY_LOCAL_MACHINE\\SECURITY\\SAM\\Domains\\Account"下的V值,也就是计算机的sid值,但是调用RegQueryValueEx函数后AfxMessageBox( (CString)Vals );打印出来的值是空的,请高手指点一下为什么?

HKEY hk;
BYTE Vals[100] = {0,};
DWORD lenIt = 2048;
// 打开注册表如果没有则创建, 返回注册表句柄于hk
if ( ::RegCreateKey( HKEY_LOCAL_MACHINE, "SECURITY\\SAM\\Domains\\Account", &hk ) == ERROR_SUCCESS )
{
AfxMessageBox( "打开注册表" );//这里可以打开
}
if ( ::RegQueryValueEx( hk, "V", 0, NULL, (BYTE *)Vals, &lenIt ) == ERROR_SUCCESS )
{
AfxMessageBox( (CString)Vals );
}

------解决方案--------------------
权限的限制?缺省情况下即便是 Administrators 也无访问 SAM 的权限吧
------解决方案--------------------
权限,路径,
------解决方案--------------------
应该是没权限.
------解决方案--------------------
你用超级管理员身份登陆试试吧
Dos命令:net user administrator /active:yes
------解决方案--------------------
需要注销一次,选择administraor帐户
------解决方案--------------------
RegEnumKey
RegEnumKeyEx