//Verification de l'etat de la dernière sauvegarde //Si les condition necessaire au lancement d'une sauvegarde sont reunies //aret du timer //demande de report de la sauvegarde //Si oui : redemarrage du timer //si non : //activation de l'autologon //sauvegarde de l'etat de l'autologon à true //lancement du redémarrage de l'ordinateur private void myTimer_Tick(object sender, EventArgs e) { this.MoveCursor(this.j); sauvegarde.SetTempsRestant(sauvegarde.GetNextSave() - DateTime.Now); if (sauvegarde.checkSaveConditions()) { this.myTimer.Stop(); ReportSaveForm rsf = new ReportSaveForm(this, sauvegarde); DialogResult = rsf.ShowDialog(); if (DialogResult == System.Windows.Forms.DialogResult.OK) { sauvegarde.SetNextSave(rsf.getNextSave()); this.lbDateProchaineSauvegarde1.Text = sauvegarde.GetNextSave().ToShortDateString() + " à " + c.getHeure() + "h" + c.getMinute(); this.myTimer.Start(); } else { RegistryModifier.enableAutoLogon(ConfigurationManager.AppSettings["password"]); this.isAutoLogonEnabled = true; Serialization.serialize(this.isAutoLogonEnabled); Save.restartComputer(); } } if (sauvegarde.GetTempsRestant().Days == 0 && sauvegarde.GetTempsRestant().Hours < 15) { ShutdownBlockReasonCreate(this.Handle, "Une sauvegarde automatique va être éffectuée à " + sauvegarde.GetNextSave().ToShortTimeString() + "." + Environment.NewLine + " Veuillez ne pas éteindre l'ordinateur"); } else { shutdownBlockReasonDestroy(this.Handle, "Arrêt autorisé"); } }
//Si l'utilisateur accepte le redémarrage de l'ordinateur //activation de l'autologon //sauvegarde de l'etat de l'autologon à true //redémarrage de l'ordinateur private void btnSave_Click(object sender, EventArgs e) { if (MessageBox.Show("La sauvegarde necessite le redemarrage de l'ordinateur, voulez-vous redémarrer maintenant?", " ", MessageBoxButtons.YesNo) == DialogResult.Yes) { RegistryModifier.enableAutoLogon(ConfigurationManager.AppSettings["password"]); this.isAutoLogonEnabled = true; Serialization.serialize(this.isAutoLogonEnabled); Save.restartComputer(); } }
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(); } }