BOOL EnableTargetPriv(LPTSTR lpszPrivilege)
{
HANDLE hToken = NULL;
TOKEN_PRIVILEGES tkp = { 0 };
if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken)) {
return FALSE;
}
if (!LookupPrivilegeValue(NULL, lpszPrivilege, &tkp.Privileges[0].Luid)) {
CloseHandle(hToken);
return FALSE;
}
tkp.PrivilegeCount = 1;
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
if (!AdjustTokenPrivileges(hToken, FALSE, &tkp, sizeof(TOKEN_PRIVILEGES), NULL, NULL)) {
CloseHandle(hToken);
return FALSE;
}
return TRUE;
}
void CMyregeditDlg::OnBnClickedBtnopenregedit()
{
system("regedit.exe");
}
//HKEY_LOCAL_MACHINE\SOFTWARE\360zip
// HKEY_LOCAL_MACHINE\BCD00000000\Description
void CMyregeditDlg::OnBnClickedBtnback()
{
CString str;
GetDlgItemText(IDC_EDT_REGEDIT, str);
if (str.IsEmpty())
{
AfxMessageBox("还没有选择要备份的目录");
return;
}
HKEY hKey = NULL;
const TCHAR *lpszSubKey = str.GetBuffer(0);
EnableTargetPriv(LPTSTR(SE_BACKUP_NAME)); // //SE_RESTORE_NAME
LONG lRet = 0;
int isFind = -1;
do
{
isFind =str.Find("HKEY_LOCAL_MACHINE");
CString tmp= str.Right(str.GetLength() - (CString("HKEY_LOCAL_MACHINE").GetLength())-1);
if (isFind>=0)
{
lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE, tmp, 0, KEY_READ | KEY_WRITE| KEY_WOW64_32KEY, &hKey);//KEY_QUERY_VALUE // KEY_READ|KEY_WRITE KEY_ALL_ACCESS|
break;
}
} while (false);
if (lRet == ERROR_SUCCESS) {
LPCTSTR lpszFile = _T("D:\\1234");
lRet = RegSaveKey(hKey, _T("D:\\1234"), NULL);
// lRet = RegRestoreKey(hKey, lpszFile, REG_FORCE_RESTORE);
RegCloseKey(hKey);
}
}
void CMyregeditDlg::OnBnClickedBtnRestore()
{
CString str;
GetDlgItemText(IDC_EDT_REGEDIT, str);
if (str.IsEmpty())
{
AfxMessageBox("还没有选择要备份的目录");
return;
}
HKEY hKey = NULL;
const TCHAR *lpszSubKey = str.GetBuffer(0);
EnableTargetPriv(LPTSTR(SE_RESTORE_NAME)); // //SE_RESTORE_NAME
LONG lRet = 0;
int isFind = -1;
do
{
isFind = str.Find("HKEY_LOCAL_MACHINE");
CString tmp = str.Right(str.GetLength() - (CString("HKEY_LOCAL_MACHINE").GetLength()) - 1);
if (isFind >= 0)
{
lRet = RegOpenKeyEx(HKEY_LOCAL_MACHINE, tmp, 0, KEY_READ | KEY_WRITE | KEY_WOW64_32KEY, &hKey);//KEY_QUERY_VALUE // KEY_READ|KEY_WRITE KEY_ALL_ACCESS|
break;
}
} while (false);
if (lRet == ERROR_SUCCESS) {
LPCTSTR lpszFile = _T("D:\\1234");
//lRet = RegSaveKey(hKey, _T("D:\\1234"), NULL);
lRet = RegRestoreKey(hKey, lpszFile, REG_FORCE_RESTORE);
RegCloseKey(hKey);
}
}
注册表
最新推荐文章于 2025-04-03 14:55:51 发布

169

被折叠的 条评论
为什么被折叠?



