/// <summary> /// Méthode d'initialisation de la form Depannage /// </summary> public Depannage() { InitializeComponent(); if (!Gestion_Verification.IsAdministrator()) { cB_veille.Enabled = false; } if (Gestion_Verification.getOSVer() == "XP") { Gestion_Verification.RechercheCCleaner(); EspaceAv = Gestion_Verification.EspaceLibre(); cB_veille.Visible = false; bgw.WorkerSupportsCancellation = true; bgw.WorkerReportsProgress = true; lb_PourcentProg.Visible = false; lb_Progression.Visible = false; pb_Traitement.Visible = false; Gestion_Verification.VerifArchiOS(); } else { Gestion_Verification.RechercheCCleaner(); EspaceAv = Gestion_Verification.EspaceLibre(); Hibernation(); bgw.WorkerSupportsCancellation = true; bgw.WorkerReportsProgress = true; lb_PourcentProg.Visible = false; lb_Progression.Visible = false; pb_Traitement.Visible = false; Gestion_Verification.VerifArchiOS(); } }
/// <summary> /// Cette méthode s'exécute lorsque l'utilisateur à cliquer sur le bouton "Supprimer" /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_Supprimer_Click(object sender, EventArgs e) { try { DialogResult result = MessageBox.Show("Êtes-vous sûr de vouloir supprimer les fichiers séléctionnés ?\nCette action est irréversible", "SBiiXpress - Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question); //Affichage d'un message de confirmation if (result == DialogResult.Yes) { //Si l'utilisateur valide alors on supprime les fichers qu'il a sélectionné foreach (DataGridViewRow d in dGV_Telechargement.Rows) { //Pour chaque lignes du DataGridView if (Convert.ToBoolean(d.Cells[ColumnCheckBox.Name].Value) == true && d.Cells[ColumnType.Name].Value.ToString() == "Fichier") { //Si la ligne actuelle a été cochée par l'utilisateur et si le contenu de la cellule "Type" est égal à "Fichier" Files[d.Index].Delete(); //Alors on supprime } else { if (Convert.ToBoolean(d.Cells[ColumnCheckBox.Name].Value) == true && d.Cells[ColumnType.Name].Value.ToString() == "Dossier") { //Sinon, si la ligne actuelle a été cochée et que le contenu de la cellule "Type" est égal à "Dossier" foreach (DirectoryInfo dir in Directories) { //Alors on parcours les sous-dossiers du dossier de téléchargement, stockés dans dir if (dir.Name.ToString() == d.Cells[ColumnNom.Name].Value.ToString()) { //Si le nom du dossier actuel dans le dossier de téléchargement est égal au nom du fichier contenu dans la ligne du DataGridView dir.Delete(true); //Alors on supprime en désactivant la confirmation } } } } } CleanerXpress.EspaceAp = Gestion_Verification.EspaceLibre(); MessageBox.Show("Le traitement est mainteant terminé, l'opération a permis de libérer " + Gestion_Verification.CalculEspaceLibere() + " Mo", "SBiiXpress - Information", MessageBoxButtons.OK, MessageBoxIcon.Information); Gestion_Verification.Ecriture_Log(); dGV_Telechargement.Rows.Clear(); Telechargements_Load(sender, e); } } catch (Exception err) { //En cas d'erreur, affichage d'un message MessageBox.Show(err.Message); } }
/// <summary> /// Cette méthode gère la suppression automatique des fichiers /// </summary> /// <param name="folder"></param> public static void SuppressAuto(string folder) { int i = 0; double espaceAv, espaceAp = 0; espaceAv = Gestion_Verification.EspaceLibre(); dinfo = new DirectoryInfo(folder); //On récupère l'emplacement du dossier de téléchargement Directories = dinfo.GetDirectories(); Files = dinfo.GetFiles(); foreach (FileInfo file in Files) { //Pour chaque fichiers du dossier de téléchargement if (file.Extension == ".exe" || file.Extension == ".msi") { //Si l'extension du ficher actuel est .exe ou .msi i++; file.Delete(); //Alors on le supprime } if ((Convert.ToInt16(file.LastAccessTime.Month) - Convert.ToInt16(DateTime.Now.Month) >= 2)) { //Si la date de dernier accès du ficher actuel est supérieur à 2 mois i++; file.Delete(); //Alors on le supprime } } if (i != 0) { //Si au moins un fichier a été supprimé, alors on affiche un message avec la taille libérée CleanerXpress.EspaceAp = Gestion_Verification.EspaceLibre(); MessageBox.Show("Le traitement est terminé, " + Gestion_Verification.CalculEspaceLibere() + " Mo ont été libérés", "SBiiXpress - Information", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { if (i == 0) { //Sinon on affiche un message qui annonce qu'aucun fichier n'a été supprimé espaceAp = espaceAv; MessageBox.Show("Aucun fichier n'a été supprimé car aucun ne correspondait à nos critères de sélection", "SBiiXpress - Information", MessageBoxButtons.OK, MessageBoxIcon.Information); } } Gestion_Verification.Ecriture_Log(); }
/// <summary> /// Méthode qui gère le lancement du traitement /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_NettoyageDisque_Click(object sender, EventArgs e) { if (!Options.IE && Options.CCleaner && !IsCCleanerPresent) { MessageBox.Show("Impossible de démarrer le traitement, CCleaner est introuvable", "SBiiXpress - Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { if (!Options.CCleaner && !Options.Cleanmgr && !Options.DechargDll && !Options.IE && !Options.Reg && !Options.WinUp) { //Si aucune des options n'est sélectionné, on affiche un message d'erreur MessageBox.Show("Au moins une option doit être cochée pour démarrer le traitement", "SBiiXpress - Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { EspaceAv = Gestion_Verification.EspaceLibre(); //Calcul de l'espace disque disponible avant traitement if (Gestion_Verification.IsAdministrator() == true) { //On teste si l'utilisateur actuel possède les droits d'administrateur, si c'est le cas on continue DialogResult result = MessageBox.Show("Êtes-vous sûr de vouloir continuer ?", "Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (result == DialogResult.Yes) { //Si l'utilisateur valide, on affiche les données de progression sur l'écran de l'application Dépannage this.lb_PourcentProg.Text = "0%"; this.lb_Progression.Visible = true; this.lb_PourcentProg.Visible = true; this.pb_Traitement.Visible = true; this.btn_Optimisation.Enabled = false; bgw.RunWorkerAsync(); //On lance le BackGroundWorker, qui lancera le traitement et qui permettra d'obtenir des informations sur la progression et éviter que l'application principale ne freeze lors du lancement des process } } else { //Si l'utilisateur ne possède pas les droits d'administrateur, on lance simplement le BackGroundWorker et on désactive le bouton des options bgw.RunWorkerAsync(); } } } }
/// <summary> /// Méthode qui gère la fin du traitement /// </summary> /// <param name="sender"></param> /// <param name="e"></param> /*private void bgw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) * { * if (e.Error != null) * { * this.lb_Progression.Text = ("Erreur"); //Si l'application rencontre une erreur, on affiche "Erreur" dans le statut de progression de la Form dépannage * MessageBox.Show("L'application à rencontré une erreur : " + e.Error.Message, "SBiiXpress - Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error); //Affichage d'un message d'erreur avec détails * } * else * { * if (!IsCCleanerPresent && Gestion_Verification.IsAdministrator()) //Vérification des droits et de la présence de CCleaner * { * if (Options.Reg && Options.DechargDll && !Options.Cleanmgr && !Options.IE && !Options.WinUp) * { * EspaceAp = espaceAv; * MessageBox.Show("Le registre à bien été sauvegardé et les DLL inutiles seront desormais déchargés automatiquement", "SBiiXpress - Information", MessageBoxButtons.OK, MessageBoxIcon.Information); * } * else * if (Options.Reg && !Options.IE && !Options.Cleanmgr && !Options.WinUp && !Options.DechargDll) * { * EspaceAp = espaceAv; * MessageBox.Show("La sauvegarde du registre a bien été effectuée", "SBiiXpress - Sauvegarde terminée", MessageBoxButtons.OK, MessageBoxIcon.Information); * } * else * if (Options.DechargDll && !Options.Reg && !Options.IE && !Options.Cleanmgr && !Options.WinUp) * { * EspaceAp = espaceAv; * MessageBox.Show("Les DLL inutiles seront désormais automatiquement déchargés", "SBiiXpress - Information", MessageBoxButtons.OK, MessageBoxIcon.Information); * } * else * { * if (!Options.Cleanmgr) * { * if (Gestion_Verification.ProcessEnCours("rundll32.exe") == 1) * { * EspaceAp = Gestion_Verification.EspaceLibre(); * MessageBox.Show("Le nettoyage est maintenant terminé, cependant vous obtiendrez de meilleurs résultats en installant CCleaner\n " + Gestion_Verification.CalculEspaceLibere() + " Mo ont étés libérés", "SBiiXpress - Nettoyage terminé", MessageBoxButtons.OK, MessageBoxIcon.Information); * } * } * else * { * if (Gestion_Verification.ProcessEnCours("cleanmgr.exe") == 1) * { * EspaceAp = Gestion_Verification.EspaceLibre(); * MessageBox.Show("Le nettoyage est maintenant terminé, cependant vous obtiendrez de meilleurs résultats en installant CCleaner\n" + Gestion_Verification.CalculEspaceLibere() + " Mo ont étés libérés", "SBiiXpress - Nettoyage terminé", MessageBoxButtons.OK, MessageBoxIcon.Information); * Gestion_Verification.SupprimerValeurRegistre(@"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\VolumeCaches\\", "StateFlags0666", rV); * } * } * } * this.lb_PourcentProg.Visible = false; * this.lb_Progression.Visible = false; * this.pb_Traitement.Visible = false; * this.btn_Optimisation.Enabled = true; * this.gb_Operation.Enabled = true; * this.gB_OptionsInfos.Enabled = true; * Gestion_Verification.ecriture_Log(); * } * else * { * if (!IsCCleanerPresent && !Gestion_Verification.IsAdministrator()) * { * //Si CCleaner n'est pas installé, on affiche le message suivant * EspaceAp = Gestion_Verification.EspaceLibre(); * MessageBox.Show("Le nettoyage est terminé cependant vous pourriez obtenir de meilleurs résultats en installant CCleaner\n" + Gestion_Verification.CalculEspaceLibere() + " Mo ont étés libérés", "SBiiXpress - Nettoyage terminé", MessageBoxButtons.OK, MessageBoxIcon.Information); * } * else * { * * if (!Gestion_Verification.IsAdministrator() && Gestion_Verification.ProcessEnCours("CCleaner64") == 1 || !Gestion_Verification.IsAdministrator() && Gestion_Verification.ProcessEnCours("CCleaner") == 1) //On vérifie que CCleaner ait fini pour afficher le message final * { * //Si l'utilisateur n'est pas Admin et que CCleaner à terminé, on affiche le message suivant * EspaceAp = Gestion_Verification.EspaceLibre(); * MessageBox.Show("Le nettoyage est maintenant terminé, cependant, vous obtiendrez de meilleurs résultats en mode administrateur\n" + Gestion_Verification.CalculEspaceLibere() + " Mo ont étés libérés", "SBiiXpress - Nettoyage terminé", MessageBoxButtons.OK, MessageBoxIcon.Information); * btn_Journal.Enabled = true; * btn_Options.Enabled = true; * } * else if (Gestion_Verification.IsAdministrator() && Gestion_Verification.ProcessEnCours("CCleaner") == 1 ||Gestion_Verification.IsAdministrator() && Gestion_Verification.ProcessEnCours("CCleaner64") == 1 && Gestion_Verification.ProcessEnCours("cleanmgr.exe") == 1 && Gestion_Verification.ProcessEnCours("rundll.exe") == 1) * { * if (Options.Cleanmgr && Options.DechargDll && !Options.Cleanmgr && !Options.IE && !Options.Reg && !Options.WinUp) * { * EspaceAp = espaceAv; * MessageBox.Show("Le registre à bien été sauvegardé et les DLL inutiles seront desormais déchargés automatiquement", "SBiiXpress - Information", MessageBoxButtons.OK, MessageBoxIcon.Information); * } * else * if (Options.Reg && !Options.CCleaner && !Options.DechargDll && !Options.IE && !Options.Cleanmgr && !Options.WinUp) * { * //Si seule la sauvegarde du registre à été cochée et qu'elle s'est bien terminée alors on affiche le message suivant * EspaceAp = espaceAv; * MessageBox.Show("La sauvegarde du registre à bien été éffectuée", "SBiiXpress - Sauvegarde terminée", MessageBoxButtons.OK, MessageBoxIcon.Information); * } * else * { * if (Options.Cleanmgr || Options.DechargDll) * { * //Si le nettoyage de Windows et le déchargement des DLL a été cochée alors on réalise le traitement suivant * if (Options.DechargDll && !Options.Cleanmgr) * { * //Si seule le déchargement des DLL a été cochée, on affiche le message suivant * EspaceAp = espaceAv; * MessageBox.Show("Les DLL inutiles seront desormais automatiquement déchargées", "SBiiXpress - Information", MessageBoxButtons.OK, MessageBoxIcon.Information); * } * else * { * //Si le nettoyage de Windows a été sélectionné et que tout s'est bien passé, alors on affiche le message suivant * EspaceAp = Gestion_Verification.EspaceLibre(); * MessageBox.Show("Le nettoyage est maintenant terminé.\n" + Gestion_Verification.CalculEspaceLibere() + " Mo ont étés libérés", "SBiiXpress - Nettoyage terminé", MessageBoxButtons.OK, MessageBoxIcon.Information); * Gestion_Verification.SupprimerValeurRegistre(@"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\VolumeCaches\\", "StateFlags0666", rV); * //On supprime les flags qui ont étés ajoutés au registre pour le nettoyage de Windows * } * } * else * { * //Si le nettoyage de Windows n'a pas été sélectionné et que tout s'est bien passé, alors on affiche le message suivant * EspaceAp = Gestion_Verification.EspaceLibre(); * MessageBox.Show("Le nettoyage est maintenant terminé.\n" + Gestion_Verification.CalculEspaceLibere() + " Mo ont étés libérés", "SBiiXpress - Nettoyage terminé", MessageBoxButtons.OK, MessageBoxIcon.Information); * //Ici on ne supprime pas les flags du registre, car pas de nettoyage Windows. Cette option permet d'éviter des messsages d'erreur à la fin de l'exécution du programme * } * } * } * } * this.lb_PourcentProg.Visible = false; * this.lb_Progression.Visible = false; * this.pb_Traitement.Visible = false; * this.btn_Optimisation.Enabled = true; * this.gb_Operation.Enabled = true; * this.gB_OptionsInfos.Enabled = true; * Gestion_Verification.ecriture_Log(); * } * } * }*/ private void bgw_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) { if (e.Error != null) { this.lb_Progression.Text = ("Erreur"); //Si l'application rencontre une erreur, on affiche "Erreur" dans le statut de progression de la Form dépannage MessageBox.Show("L'application à rencontré une erreur : " + e.Error.Message, "SBiiXpress - Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error); //Affichage d'un message d'erreur avec détails } else { if (Gestion_Verification.IsAdministrator()) //Utilisateur est admin { if (isCCleanerPresent) { if (Options.Reg && Options.IE && Options.Cleanmgr && Options.WinUp && Options.DechargDll && Options.CCleaner) { if (Gestion_Verification.ProcessEnCours("CCleaner") == 1 && Gestion_Verification.ProcessEnCours("CCleaner64") == 1 && Gestion_Verification.ProcessEnCours("rundll32") == 1 && Gestion_Verification.ProcessEnCours("cleanmgr") == 1) { EspaceAp = Gestion_Verification.EspaceLibre(); MessageBox.Show("Le nettoyage est maintenant terminé", "SBiiXpress - Information", MessageBoxButtons.OK, MessageBoxIcon.Information); Gestion_Verification.SupprimerValeurRegistre(@"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\VolumeCaches\\", "StateFlags0666", rV); } } else { if (Options.Reg && Options.DechargDll && !Options.IE && !Options.Cleanmgr && !Options.WinUp && !Options.CCleaner) { EspaceAp = espaceAv; MessageBox.Show("Le registre a bien été sauvegardé et les DLL inutiles seront automatiquement déchargés", "SBiiXpress - Informations", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { if (Options.DechargDll && !Options.Reg && !Options.IE && !Options.Cleanmgr && !Options.WinUp && !Options.CCleaner) { EspaceAp = espaceAv; MessageBox.Show("Les DLL inutiles seront desormais déchargés automatiquement", "SBiiXpress - Information", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { if (Gestion_Verification.ProcessEnCours("cleanmgr") == 1 && Gestion_Verification.ProcessEnCours("CCleaner") == 1 && Gestion_Verification.ProcessEnCours("CCleaner64") == 1 && Gestion_Verification.ProcessEnCours("rundll32") == 1) { EspaceAp = Gestion_Verification.EspaceLibre(); MessageBox.Show("Le nettoyage est maintenant terminé\n" + Gestion_Verification.CalculEspaceLibere() + " Mo ont étés libérés", "SBiiXpress - Informations", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { EspaceAp = Gestion_Verification.EspaceLibre(); MessageBox.Show("Le nettoyage est maintenant terminé\n" + Gestion_Verification.CalculEspaceLibere() + " Mo ont étés libérés", "SBiiXpress - Informations", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } } } else //CCleaner n'est pas présent { if (Options.Reg && Options.IE && Options.WinUp && Options.DechargDll) { if (Gestion_Verification.ProcessEnCours("rundll32") == 1 && Gestion_Verification.ProcessEnCours("cleanmgr") == 1) { EspaceAp = Gestion_Verification.EspaceLibre(); MessageBox.Show("Le nettoyage est maintenant terminé, cependant vous obtiendrez de meilleurs résultats en installant CCleaner", "SBiiXpress - Informations", MessageBoxButtons.OK, MessageBoxIcon.Information); Gestion_Verification.SupprimerValeurRegistre(@"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\VolumeCaches\\", "StateFlags0666", rV); } } else { if (Options.Reg && Options.DechargDll && !Options.CCleaner && !Options.Cleanmgr && !Options.IE && !Options.WinUp) { EspaceAp = espaceAv; MessageBox.Show("Le registre a bien été sauvegardé et les DLL inutiles seront automatiquement déchargés", "SBiiXpress - Informations", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { if (Options.Reg && !Options.CCleaner && !Options.Cleanmgr && !Options.DechargDll && !Options.IE && !Options.WinUp) { EspaceAp = espaceAv; MessageBox.Show("Le registre a bien été sauvegardé", "SBiiXpress - Informations", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { if (Options.DechargDll && !Options.CCleaner && !Options.Cleanmgr && !Options.IE && !Options.Reg && !Options.WinUp) { EspaceAp = espaceAv; MessageBox.Show("Les DLL inutiles seront desormais déchargés", "SBiiXpress - Information", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { if (Options.Cleanmgr && Gestion_Verification.ProcessEnCours("cleanmgr") == 1 && Gestion_Verification.ProcessEnCours("rundll32") == 1) { EspaceAp = Gestion_Verification.EspaceLibre(); MessageBox.Show("Le nettoyage est maintenant terminé, cependant vous obtiendrez de meilleurs résultats en installant CCleaner\n" + Gestion_Verification.CalculEspaceLibere() + " Mo ont étés libérés", "SBiiXpress - Informations", MessageBoxButtons.OK, MessageBoxIcon.Information); Gestion_Verification.SupprimerValeurRegistre(@"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\VolumeCaches\\", "StateFlags0666", rV); } else { EspaceAp = Gestion_Verification.EspaceLibre(); MessageBox.Show("Le nettoyage est maintenant terminé, cependant vous obtiendrez de meilleurs résultats en installant CCleaner", "SBiiXpress - Information", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } } } } this.lb_PourcentProg.Visible = false; this.lb_Progression.Visible = false; this.pb_Traitement.Visible = false; this.btn_Optimisation.Enabled = true; this.gb_Operation.Enabled = true; this.gB_OptionsInfos.Enabled = true; Gestion_Verification.ecriture_Log(); } else { //L'utilisateur n'est pas admin if (IsCCleanerPresent) //Si CCleaner est présent { if (Options.CCleaner && Gestion_Verification.ProcessEnCours("CCleaner") == 1) { EspaceAp = Gestion_Verification.EspaceLibre(); MessageBox.Show("Le nettoyage est maintenant terminé\n" + Gestion_Verification.CalculEspaceLibere() + " Mo ont étés libérés", "SBiiXpress - Informations", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { if (Options.Cleanmgr && Gestion_Verification.ProcessEnCours("cleanmgr") == 1) { EspaceAp = Gestion_Verification.EspaceLibre(); MessageBox.Show("Le nettoyage est maintenant terminé\n" + Gestion_Verification.CalculEspaceLibere() + " Mo ont étés libérés", "SBiiXpress - Informations", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { EspaceAp = Gestion_Verification.EspaceLibre(); MessageBox.Show("Le nettoyage est maintenant terminé\n" + Gestion_Verification.CalculEspaceLibere() + " Mo ont étés libérés", "SBiiXpress - Informations", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } else { //CCleaner n'est pas présent if (Options.Cleanmgr && Gestion_Verification.ProcessEnCours("Cleanmgr") == 1) { EspaceAp = Gestion_Verification.EspaceLibre(); MessageBox.Show("Le nettoyage est maintenant terminé\n" + Gestion_Verification.CalculEspaceLibere() + " Mo ont étés libérés", "SBiiXpress - Informations", MessageBoxButtons.OK, MessageBoxIcon.Information); } } this.lb_PourcentProg.Visible = false; this.lb_Progression.Visible = false; this.pb_Traitement.Visible = false; this.btn_Optimisation.Enabled = true; this.gb_Operation.Enabled = true; this.gB_OptionsInfos.Enabled = true; Gestion_Verification.ecriture_Log(); } } }