void CRegDlg::OnBnClickedButtonOpen()
{
// TODO: 在此添加控件通知处理程序代码
system("Regedit.exe");
}
CString strDirPath = "";
void CRegDlg::OnBnClickedButtonBackup()
{
// TODO: 在此添加控件通知处理程序代码
SetDlgItemText(IDC_EDIT_PATH, "");
{
BROWSEINFOA bi;//弹出选择文件夹的对话框
::memset(&bi, 0, sizeof(bi));//memset 函数是内存赋值函数,用来给某一块内存空间进行赋值的,将以&bi为起始地址,大小为sizeo(bi)的内存区域用0填充
char szPath[MAX_PATH];//最长全路径长度
LPITEMIDLIST pItem = SHBrowseForFolder(&bi);//Displays a dialog box enabling the user to select a Shell folder.
CString strDir;
if (pItem != 0) {
::SHGetPathFromIDList(pItem, szPath);//把项目标志符列表转换为文档系统路径
strDirPath = szPath;
strDir = strDirPath;
if (strDirPath.Find('\\') < 0 || strDirPath.GetAt(strDirPath.GetLength() - 1) != '\\') {
strDirPath += "\\";
}
//转换为年月日时分秒的二进制文件
CTime t = CTime::GetCurrentTime();
CString strTime = t.Format("%Y%m%d%H%M%S");
strTime += ".bin";
strDirPath += strTime;
}
SetDlgItemText(IDC_EDIT_PATH, strDir);
}
if (strDirPath.IsEmpty()) {
AfxMessageBox("请指定需要备份的文件目录");
return;
}
CString strCmd;
CString strkey = "HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet001\\services\\DevaCfg";
CString strkey1 = "HKEY_LOCAL_MACHINE\\SYSTEM\\ControlSet001\\Services\\EventLog\\System\\DevaCfg";
strCmd.Format("cmd /c reg export %s %s", strkey, strDirPath);
WinExec(strCmd, SW_HIDE);//SW_HIDE表示程序启动后隐藏主窗口
AfxMessageBox("备份成功!");
SetDlgItemText(IDC_EDIT_PATH, "");
}
void CRegDlg::OnBnClickedButtonRestore()
{
// TODO: 在此添加控件通知处理程序代码
CString strCmd;
CFileDialog fDlg(TRUE, NULL, NULL, OFN_FILEMUSTEXIST, "myregedit(*.reg)|*.reg|All Files(*.*)|*.*");//打开文件对话框
if (fDlg.DoModal() == IDOK) {
CString strFile = fDlg.GetPathName();
SetDlgItemText(IDC_EDIT_PATH, strFile);
strCmd.Format("cmd /c reg import %s", strFile);
WinExec(strCmd, SW_HIDE);
AfxMessageBox("还原成功!");
return;
}
AfxMessageBox("未恢复!");
}