//---------------------------------------------------------------------------
int EnablePrivilege(LPCTSTR lpszPrivilege,BOOL bEnable) 
{
        HANDLE hToken;
        TOKEN_PRIVILEGES tp;
        LUID luid;
        if(!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES |
        TOKEN_QUERY | TOKEN_READ,&hToken))
        return 1;
        if(!LookupPrivilegeValue  (NULL,lpszPrivilege,&luid ) )              return 2;
        tp.PrivilegeCount = 1;
        tp.Privileges[0].Luid = luid;
        tp.Privileges[0].Attributes = (bEnable) ? SE_PRIVILEGE_ENABLED : 0;        AdjustTokenPrivileges(hToken,FALSE,&tp,NULL,NULL,NULL);
        CloseHandle(hToken);
        return 0;
}//导出函数
         EnablePrivilege(SE_BACKUP_NAME,TRUE);
         HKEY hKey;
         char  *strSubKey= "Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones";
         LONG KK = RegOpenKeyEx( HKEY_CURRENT_USER,strSubKey,0, KEY_ALL_ACCESS, &hKey );
         LONG QQ =RegSaveKey(hKey,"C:\\1.dat",NULL);
         ShowMessage(QQ);
         RegCloseKey( hKey );
         EnablePrivilege(SE_BACKUP_NAME,FALSE);
该代码在管理员级别的用户中可以成功导出注册表文件,
但是在非管理员级别的用户中无法导出文件来。我的系统是XP,在调试中发现不成功的情况下,RegSaveKey返回值是1314。(指没有权限)
但是在普通用户的注册表中“HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones”这个键值,对于这个登录的普通用户是有完全权限的。