public bool checkSaveConditions() { DateTime lastSave = Serialization.deserializeLastSaveDate(false); TimeSpan elapsedTime = DateTime.Now - lastSave; return(verifieSiTempsEstEcoule(RemainingTime)); }
public DateTime InitNextSave() { DateTime controlDate = Serialization.deserializeLastSaveDate(true); if (controlDate.Year == 2000) { //planifie la prochaine sauvegarde ce jour-ci var inter = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, c.heure, c.minute, 0); nextSave = inter; return(nextSave); } //planifie la prochaine sauvegarde en fonction des paramètres de configuration nextSave = controlDate.AddDays(c.period).AddHours(-controlDate.Hour + c.heure).AddMinutes(-controlDate.Minute + c.minute).AddSeconds(-controlDate.Second); //si la date de prochaine sauvegarde est dépassée ou si la dernière sauvegarde est incomplète ou introuvable //if ((nextSave < DateTime.Now) || verifieSiTerminee() == '0') if (nextSave < DateTime.Now) { nextSave = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, c.heure, c.minute, 0); if (nextSave.CompareTo(DateTime.Now) < 0) { nextSave.AddDays(1); //this.lbDateProchaineSauvegarde1.Text = this.nextSave.ToShortDateString() + " à " + this.nextSave.ToShortTimeString(); Log.Write("Date de sauvegarde dépassée ou sauvegarde incomplete, réinitialisation de la date de la prochaine sauvegarde, nouvelle valeur: " + this.nextSave.ToString()); return(nextSave); } } return(nextSave); }
public DateTime initNextSave() { DateTime d = Serialization.deserializeLastSaveDate(true); DateTime nextSave = d.AddDays(c.getPeriode()).AddHours(-d.Hour + c.getHeure()).AddMinutes(-d.Minute + c.getMinute()).AddSeconds(-d.Second); return(nextSave); }
public bool checkSaveConditions() { DateTime lastSave = Serialization.deserializeLastSaveDate(false); int heure = Convert.ToInt32(this.c.getHeure()); int minute = Convert.ToInt32(this.c.getMinute()); int period = Convert.ToInt32(this.c.getPeriode()); bool check = false; try { this.tempsRestant = this.nextSave - DateTime.Now; TimeSpan tempsEcoule = DateTime.Now - lastSave; //this.checkNextSaveDate(); /* if (this.tempsRestant.Days == 0 && this.tempsRestant.Hours < 15) * { * ShutdownBlockReasonCreate(frm.Handle, "Une sauvegarde automatique va être éffectuée à " + this.nextSave.ToShortTimeString() + "." + Environment.NewLine + " Veuillez ne pas éteindre l'ordinateur"); * } * else * { shutdownBlockReasonDestroy(frm.Handle, "Arrêt autorisé"); } */ //this.afficheAlerte(); check = this.verifieSiTempsEstEcoule(tempsRestant); } catch { } return(check); }
public char verifieSiTerminee() { char ok = '0'; DateTime dt = Serialization.deserializeLastSaveDate(false); //si le fichier de sauvegarde final éxiste et le backgroundWorker est inactif //sinon si le fichier de sauvegarde temporaire éxiste et que le backgroundworker est inactif //sinon si le fichier de sauvegarde temporaire éxiste et que le backgroundworker est actif if (Directory.Exists(ConfigurationManager.AppSettings["path"] + @"\" + dt.Day + "." + dt.Month + "." + dt.Year) && this.bgwk == null) { ok = '2'; } else if (Directory.Exists(ConfigurationManager.AppSettings["path"] + @"\" + dt.Day + "." + dt.Month + "." + dt.Year + ".tmp") && this.bgwk == null) { ok = '0'; } else if (Directory.Exists(ConfigurationManager.AppSettings["path"] + @"\" + dt.Day + "." + dt.Month + "." + dt.Year + ".tmp") && this.bgwk != null) { ok = '1'; } Serialization.serializeEtatDerniereSave(ok); return(ok); }
//Lorsque la sauvegarde est terminée private void backgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { backgroundWorker.Dispose(); backgroundWorker.CancelAsync(); mainform.setLbEtatDerniereSauvegarde(); DateTime lastSave = Serialization.deserializeLastSaveDate(false); Configuration c = new Configuration(); //reinitialisation de la date de la prochaine sauvegarde DateTime d = s.initNextSave(); Log.write("- " + DateTime.Now.ToShortDateString() + " à " + DateTime.Now.ToShortTimeString() + " Réinitialisation de la date de la prochaine sauvegarde, nouvelle valeur: " + d.ToString()); this.mainform.setLbDateProchaineSauvegarde(d); //suppression des anciennes sauvegardes if (c.getNbSaves() != 0) { s.checkSaveNumber(); } //Création et envoi du mail de fin de sauvegarde Mailer m = new Mailer(this.s); m.sendNotificationSauvegarde(); s.setNbFichiersCopies(0); if (c.getAutoShutDown() == '1') { //Arret de l'ordinateur System.Diagnostics.ProcessStartInfo restart = new System.Diagnostics.ProcessStartInfo("shutdown.exe", "-s -t 60"); System.Diagnostics.Process.Start(restart); } else { MessageBox.Show("Sauvegarde terminée."); Log.write("- " + DateTime.Now.ToShortDateString() + " à " + DateTime.Now.ToShortTimeString() + " Sauvegarde terminée"); Application.Restart(); } Close(); }
public MainForm() { InitializeComponent(); Log.write("- " + DateTime.Now.ToShortDateString() + DateTime.Now.ToShortTimeString() + " Lancement de l'application"); //chargement des paramètres de l'application this.c = new Configuration(); //Chargement de la date de la derniere sauvegarde //initialisation de la date de la prochaine sauvegarde //report de la sauvegarde si la dernière sauvegarde ne s'est pas produite this.sauvegarde = new Save(this); //DateTime lastSave = Serialization.deserializeLastSaveDate(true); //this.nextSave = initNextSave(lastSave, this.c.getPeriode(), this.c.getHeure(), this.c.getMinute()); //Log.write("- " + DateTime.Now.ToShortDateString() + " à " + DateTime.Now.ToShortTimeString() + " Réinitialisation de la date de la prochaine sauvegarde, nouvelle valeur: " + sauvegarde.GetNextSave().ToString()); //sauvegarde.reportDateSauvegarde(); //Vérifie si l'utilisateur à accès au répertoire de destination de la sauvegarde au lancement de l'application //si non, fermeture de l'application if (!(Serialization.deserializeLastSaveDate(false).Year == 2000)) { try { Directory.CreateDirectory(this.c.getPath() + @"/test"); Directory.Delete(this.c.getPath() + @"/test"); } catch (IOException IOEx) { this.launch = false; MessageBox.Show("Il semble que vous n'êtes pas connecté au réseau AMF." + Environment.NewLine + "l'application va fermer.", "AUTOMOTOR Backup", MessageBoxButtons.OK, MessageBoxIcon.Error); Log.write("- " + DateTime.Now.ToShortDateString() + " à " + DateTime.Now.ToShortTimeString() + " : " + IOEx.Message); Application.Exit(); } catch (Exception ex) { MessageBox.Show("une erreur est survenue au lancement de l'application.", "AUTOMOTOR Backup", MessageBoxButtons.OK, MessageBoxIcon.Error); Log.write("- " + DateTime.Now.ToShortDateString() + " à " + DateTime.Now.ToShortTimeString() + " : " + ex.Message); } } //this.lbProchaineSauvegarde1.Visible = false; //this.lbCompteARebours.Visible = false; this.Text = "AUTOMOTOR Backup 2.0"; this.lbUtilisateur1.Text = Environment.UserName; this.minimize(); if (Serialization.deserializeLastSaveDate(false).Year == 2000) { this.lbDateProchaineSauvegarde1.ForeColor = Color.Red; this.lbDateProchaineSauvegarde1.Text = "non planifiée"; } else { this.lbDateProchaineSauvegarde1.Text = sauvegarde.GetNextSave().ToShortDateString() + " à " + sauvegarde.GetNextSave().ToShortTimeString(); } //Configuration du Timer this.configureTimer(); this.setLbEtatDerniereSauvegarde(); //Appel de la fonction permettant le bloquage d'arrets Windows //ShutdownBlockReasonCreate(this.Handle, "Une sauvegarde automatique va être éffectuée."); //chargement de la valeur booléenne indiquant si l'autoLogon est activé en base de registre //Si l'AutoLogon est activé en base de registre Windows //Désactivation de l'autoLogon en base de registre Windows // mise à jour et sauvegarde de la valeur booléenne // suppression de la sauvegarde la plus ancienne si le nombre maxi de sauvegarde sera dépassé //lancement de la sauvegarde this.isAutoLogonEnabled = (bool)Serialization.deserialize(); if (this.isAutoLogonEnabled == true) { Thread.Sleep(60000); RegistryModifier.disableAutoLogon(); this.isAutoLogonEnabled = false; Serialization.serialize(this.isAutoLogonEnabled); this.initSaveViewer(); } }
public void saveConfig() { //ouverture du fichier de configuration System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None); //sauvegarde de l'heure de la sauvegarde //sauvegarde de la minute de la sauvegarde //sauvegarde du chemin du repertoire de destination de la sauvegarde //sauvegarde de l'intervalle en jours entre 2 sauvegardes config.AppSettings.Settings.Remove("heure"); config.AppSettings.Settings.Add("heure", this.tbHour.Text); config.AppSettings.Settings.Remove("minute"); config.AppSettings.Settings.Add("minute", this.tbMinutes.Text); config.AppSettings.Settings.Remove("path"); config.AppSettings.Settings.Add("path", this.tbPath.Text); config.AppSettings.Settings.Remove("period"); config.AppSettings.Settings.Add("period", this.NUDInterval.Value.ToString()); //si la zone de texte permettant de changer le mot de passe est visible //sauvegarde du mot de passe if (this.tbConfirmMDP.Visible == true) { config.AppSettings.Settings.Remove("password"); config.AppSettings.Settings.Add("password", this.tbMDP.Text); } //si la zone de texte permettant de changer le mot de passe administrateur est visible //sauvegarde du mot de passe administrateur if (this.tbConfirmMDPAdmin.Visible == true) { Security sec = new Security(); config.AppSettings.Settings.Remove("passwordAdmin"); config.AppSettings.Settings.Add("passwordAdmin", sec.toCaesar(this.tbMDPAdmin.Text, 15)); Serialization.serializeMDPAdmin(sec.toCaesar(this.tbMDPAdmin.Text, 15)); } //sauvegarde du nombre de sauvegardes à conserver config.AppSettings.Settings.Remove("nbSaves"); config.AppSettings.Settings.Add("nbSaves", this.numericUpDown1.Value.ToString()); //sauvegarde des paramètres d'envoi de mails config.AppSettings.Settings.Remove("from"); config.AppSettings.Settings.Remove("MDPFrom"); config.AppSettings.Settings.Remove("SMTP"); config.AppSettings.Settings.Remove("port"); config.AppSettings.Settings.Remove("to"); config.AppSettings.Settings.Remove("SSL"); config.AppSettings.Settings.Add("from", this.tbFrom.Text); config.AppSettings.Settings.Add("MDPfrom", this.tbMDPFrom.Text); config.AppSettings.Settings.Add("SMTP", this.tbSMTP.Text); config.AppSettings.Settings.Add("port", this.tbPort.Text); config.AppSettings.Settings.Add("to", this.tbTo.Text); if (this.cbSSL.Checked) { config.AppSettings.Settings.Add("SSL", "1"); } else { config.AppSettings.Settings.Add("SSL", "0"); } ConfigurationManager.RefreshSection("appSettings"); config.Save(ConfigurationSaveMode.Modified); Serialization.deserializeLastSaveDate(true); }