读书人

求。RegSaveKey备份出来的注册表是乱码

发布时间: 2012-06-08 12:55:24 作者: rapoo

求高手指点。。。。RegSaveKey备份出来的注册表是乱码.
直接上代码:

#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
void main()
{
HANDLE hToken;
TOKEN_PRIVILEGES tkp;
if (!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES|TOKEN_QUERY,&hToken))
{
printf(">>>>!OpenProcessToken() error!%d",GetLastError());
}
LookupPrivilegeValue(NULL,SE_BACKUP_NAME,&tkp.Privileges[0].Luid);
tkp.PrivilegeCount=1;
tkp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
LONG la=AdjustTokenPrivileges(hToken,FALSE,&tkp,0,(PTOKEN_PRIVILEGES)NULL,0);
if (la==NULL)//成功
{
printf(">>>>AdjustTokenPrivileges() error!%d",GetLastError());
}
HKEY hKey;
LONG lert;
lert=RegOpenKeyEx(HKEY_LOCAL_MACHINE,"SOFTWARE\\TrendMicro",0,KEY_READ,&hKey);
if (lert==ERROR_SUCCESS)//成功
{
RegSaveKey(hKey,LPCTSTR("d:\\regist.reg"),NULL);
}
CloseHandle(hToken);
RegCloseKey(hKey);;

}

我用的是win7,要提升权限
备份出的大小是100kb,但打开都是乱码。求救。。。。

[解决办法]
RegSaveKey备份出来的不是明文的reg脚本吧……
[解决办法]
windows internals这本书说过,注册表备份还原可以压缩注册表,减少体积,所谓的注册表优化软件就是这个原理,因此备份注册表应该是你紧凑存储,不是脚本

读书人网 >C++

热点推荐