关于注册表的问题 我想备份注册表某个键的值,怎么做啊。然后我备份的还可以恢复!!谢谢大家帮忙啊。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 导入导出注册表http://www.vckbase.com/document/viewdoc/?id=724 先打开某个key,返回的是一个HKEY,然后枚举这个key下面的 value_name 和value 值.开 key RegOpenKeyEx取得value 名称RegEnumValue取value 值RegQueryValueEx CRegEdit lreg; int getres; int index = 0; TCHAR buf[1000]; TCHAR value[1000]; DWORD bufsize = 1000; DWORD value_type; HKEY run_key; if (::RegOpenKeyEx(regkey, subkey, NULL, KEY_ALL_ACCESS, &run_key) != ERROR_SUCCESS) return; ZERO_MEMORY(buf, 1000); bufsize = 1000; getres = RegEnumValue(run_key, index++, buf, &bufsize, NULL,&value_type, NULL,NULL); while (getres == ERROR_SUCCESS) { TRACE("keyname: %s value: ", buf); if (value_type == REG_SZ) { ZERO_MEMORY(value, 1000); bufsize = 1000; if (RegQueryValueEx(run_key, buf,NULL, NULL, (LPBYTE)value,&bufsize) == ERROR_SUCCESS) { TRACE("%s\n",value); CString startvalue = value; std::list<CString> params; if (startvalue.Find(" /") != -1) startvalue = startvalue.Left(startvalue.Find(" /")); startvalue = StringClearChar(startvalue, TCHAR(34)); startvalue = StringClearChar(startvalue, TCHAR(39)); CString filename, fullname; fullname = startvalue; filename = GetFileName(fullname); STARTUP_NODE lnode; lnode.iType = STARTUP_NODE::_type_start_reg; lnode.hRegKey = regkey; lnode.strSubKey = subkey; lnode.strValueName = buf; rlist.push_back(lnode); } }else { TRACE("\n"); } ZERO_MEMORY(buf, 1000); getres = RegEnumValue(run_key, index++, buf, &bufsize, NULL,&value_type, NULL,NULL); } ::RegCloseKey(run_key); CStdioFile readString提示记事本出现未知错误 rpc程序的编译错误,如何解决? MFC 初始对话窗窗口样式 问题 如何隐藏分区,但是仍然能用路径访问到。 大家常去哪些VC的英文网站或论坛? 怎样把图片做为DialogBase的背景图啊?请指点?? 请问怎么将一个字符串变为大写? 怎么将一个字符变为大写? (不用类, 如CString)? 各位大虾,ClistCtrl有没有被check和取消check时的消息啊。谢谢了 请问ListBox控件添加item问题 对WDM熟悉的进来!!! 对话框无法模式化是怎么回事? 问个关于CTime的问题
开 key RegOpenKeyEx
取得value 名称RegEnumValue
取value 值RegQueryValueEx CRegEdit lreg;
int getres;
int index = 0;
TCHAR buf[1000];
TCHAR value[1000];
DWORD bufsize = 1000;
DWORD value_type;
HKEY run_key;
if (::RegOpenKeyEx(regkey, subkey, NULL, KEY_ALL_ACCESS, &run_key) != ERROR_SUCCESS)
return;
ZERO_MEMORY(buf, 1000);
bufsize = 1000;
getres = RegEnumValue(run_key, index++, buf, &bufsize, NULL,&value_type, NULL,NULL);
while (getres == ERROR_SUCCESS) {
TRACE("keyname: %s value: ", buf);
if (value_type == REG_SZ) {
ZERO_MEMORY(value, 1000);
bufsize = 1000;
if (RegQueryValueEx(run_key, buf,NULL, NULL, (LPBYTE)value,&bufsize) == ERROR_SUCCESS) {
TRACE("%s\n",value);
CString startvalue = value;
std::list<CString> params;
if (startvalue.Find(" /") != -1)
startvalue = startvalue.Left(startvalue.Find(" /")); startvalue = StringClearChar(startvalue, TCHAR(34));
startvalue = StringClearChar(startvalue, TCHAR(39)); CString filename, fullname;
fullname = startvalue;
filename = GetFileName(fullname);
STARTUP_NODE lnode;
lnode.iType = STARTUP_NODE::_type_start_reg; lnode.hRegKey = regkey;
lnode.strSubKey = subkey;
lnode.strValueName = buf;
rlist.push_back(lnode);
}
}else {
TRACE("\n");
}
ZERO_MEMORY(buf, 1000);
getres = RegEnumValue(run_key, index++, buf, &bufsize, NULL,&value_type, NULL,NULL);
}
::RegCloseKey(run_key);