//---------------------------------------------------------------------------
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”这个键值,对于这个登录的普通用户是有完全权限的。
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”这个键值,对于这个登录的普通用户是有完全权限的。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货