private void b2_Click(object sender, EventArgs e) { progresMoment.ForeColor = Color.FromArgb(0, 0, 0); progresMoment.Text = " "; Refresh(); String selectedProgram = sProgram.Text; string[] programElements = new string[2]; programElements = OperationCAD.WhatCopy(selectedProgram); String program = programElements[0]; String selectedProfileToBeRestored = selectedProfil.Text; //String reg = programElements[1]; String sourcePath = selectedProfileToBeRestored; String roamingSource = selectedProfileToBeRestored + "\\Roaming"; String localSource = selectedProfileToBeRestored + "\\Local"; String pathReg = sourcePath + "\\regCopy.reg"; String apdataRoamin = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData).ToString(); String apdataLocal = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData).ToString(); String targetRoaming = apdataRoamin + "\\" + program; String targetLocal = apdataLocal + "\\" + program; //MessageBox.Show("sRoaming: " + roamingSource +"\n" + "sSource: " + localSource + "\n" +"targetRoaming: " + targetRoaming + "\n" + "targetLocal: " + targetLocal + "\n" + pathReg) ; if (!String.IsNullOrEmpty(selectedProfileToBeRestored) && !String.IsNullOrEmpty(program) && selectedProfileToBeRestored.Contains(program)) { progresMoment.ForeColor = Color.FromArgb(0, 0, 0); progresMoment.Text = "Usuwam obecny profil CAD..."; Refresh(); if (Directory.Exists(targetRoaming) && Directory.Exists(targetLocal)) { try { Directory.Delete(targetRoaming, true); Directory.Delete(targetLocal, true); } catch { progresMoment.ForeColor = Color.FromArgb(255, 0, 0); progresMoment.Text = "Wystąpił błąd poczas czyszczenie obecnego profilu " + program; Refresh(); } } progresMoment.ForeColor = Color.FromArgb(0, 0, 0); progresMoment.Text = "Wgrywam nowy profil CAD..."; Refresh(); try { OperationCAD.DirectoryCopy(roamingSource, targetRoaming, true); OperationCAD.DirectoryCopy(localSource, targetLocal, true); } catch { progresMoment.ForeColor = Color.FromArgb(255, 0, 0); progresMoment.Text = "Wystąpił błąd podczas kopiowania plików " + program; Refresh(); } progresMoment.ForeColor = Color.FromArgb(0, 0, 0); progresMoment.Text = "Importuje rejestr..."; Refresh(); try { OperationCAD.importRegistry(pathReg); } catch { progresMoment.ForeColor = Color.FromArgb(255, 0, 0); progresMoment.Text = "Wystapił błąd podczas imporotwania rejestru"; Refresh(); } progresMoment.ForeColor = Color.FromArgb(0, 255, 0); progresMoment.Text = "Skończone"; Refresh(); } else { progresMoment.ForeColor = Color.FromArgb(255, 0, 0); progresMoment.Text = "Sprawdź czy wszystkie pola zostały uzupełnione poprawnie"; Refresh(); } }
private void b1_Click(object sender, EventArgs e) { progresMoment.ForeColor = Color.FromArgb(0, 0, 0); progresMoment.Text = " "; Refresh(); progresMoment.Text = "Przygotowywanie składników"; string[] programElements = new string[2]; programElements = OperationCAD.WhatCopy(sProgram.Text); String program = programElements[0]; String reg = programElements[1]; String changeToUserName = ChangeToUserName.Text; String apdataRoamin = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData).ToString(); String apdataLocal = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData).ToString(); String myDocument = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments).ToString(); String pathRoaming = apdataRoamin + "\\" + program; String pathLocal = apdataLocal + "\\" + program; String targetPath = myDocument + "\\backuperCad_ " + program + String.Format("_{0}_{1:D2}_{2:D2}_{3}", DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, changeToUserName); String targetRoaming = targetPath + "\\Roaming"; String targetLocal = targetPath + "\\Local"; String pathReg = "HKCU\\Software\\" + reg; if (!String.IsNullOrEmpty(sProgram.Text)) { if (!Directory.Exists(targetPath)) { progresMoment.ForeColor = Color.FromArgb(0, 0, 0); progresMoment.Text = "Zaczynam prace..."; Refresh(); // sprawdza czy istnieją pliki wybranego programu if (Directory.Exists(pathRoaming) && Directory.Exists(pathLocal)) { try { //Tworzy pliki docelowe kopi zapasowej Directory.CreateDirectory(targetPath); Directory.CreateDirectory(targetRoaming); Directory.CreateDirectory(targetLocal); } catch { MessageBox.Show("Nie udało się utworzyć kopi :" + program); } progresMoment.ForeColor = Color.FromArgb(0, 0, 0); progresMoment.Text = "Kopiowanie plików..."; Refresh(); try { // kopiuje pliki z Local i Roaming do folderu z backupem na C OperationCAD.DirectoryCopy(pathRoaming, targetRoaming, true); OperationCAD.DirectoryCopy(pathLocal, targetLocal, true); // exportuje fragment rejestru zwiazany z programem Cad OperationCAD.exportRegistry(pathReg, targetPath + "\\regCopy.reg"); } catch { progresMoment.ForeColor = Color.FromArgb(255, 0, 0); progresMoment.Text = "Nie udało się utworzyć kopi :" + program; } progresMoment.ForeColor = Color.FromArgb(0, 0, 0); progresMoment.Text = "Nanoszenie zmian w kopi rejestru..."; Refresh(); try { string str = File.ReadAllText(targetPath + "\\regCopy.reg"); str = str.Replace(userName, changeToUserName); File.WriteAllText(targetPath + "\\regCopy.reg", str); } catch { progresMoment.ForeColor = Color.FromArgb(255, 0, 0); progresMoment.Text = "Nie udało się wprowadzić zmian w kopi rejestru" + program; } progresMoment.ForeColor = Color.FromArgb(0, 204, 0); progresMoment.Text = "Skończone"; openExplorer.Visible = true; Refresh(); } else { progresMoment.ForeColor = Color.FromArgb(255, 0, 0); progresMoment.Text = "Brak plików do " + program; } } else { progresMoment.ForeColor = Color.FromArgb(255, 0, 0); progresMoment.Text = "Istnieje kopia z tego dnia"; } } else { progresMoment.ForeColor = Color.FromArgb(255, 0, 0); progresMoment.Text = "Wybierz program z listy"; } }