/// <summary> /// Cette méthode permet de lancer l'outil de Nettoyage de disque de Windows en mode complet /// </summary> public void CleanMgrAll() { Gestion_Verification.LectureEcritureRegistre(@"SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\VolumeCaches\\", "StateFlags0666", 2, RegistryValueKind.DWord, rV); //On ajoute un flag sur toutes les options qui seront concernées par le nettoyage Exec("cleanmgr.exe", " /sagerun:0666"); //On exécute le nettoyage en précisant le nom du flag correspondant aux valeurs à supprimer }
private void cleanerXpressToolStripMenuItem_Click(object sender, EventArgs e) { if (Gestion_Verification.GetOSVer() == "95" || Gestion_Verification.GetOSVer() == "98" || Gestion_Verification.GetOSVer() == "Me" || Gestion_Verification.GetOSVer() == "2000") { //Si l'OS de l'utilisateur est anterieur à Windows Vista, la form dépannage ne sera pas créée MessageBox.Show("Ce programme necessite une version plus récente de Windows", "CleanerXpress - Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error); } else { CleanerXpress CX = new CleanerXpress(); CX.Show(); if (Gestion_Verification.GetOSVer() != "XP") { //On vérifie les droits de l'utilisateur et on affiche ensuite sur la form dépannage if (Gestion_Verification.IsAdministrator()) { CX.lb_Type.Text = "Complet (administrateur)"; CX.lb_Type.ForeColor = Color.Green; } else { CX.lb_Type.Text = "Restreint (invité)"; CX.lb_Type.ForeColor = Color.Red; } } else { if (Gestion_Verification.GetOSVer() == "XP") { CX.lb_Privileges.Visible = false; CX.lb_Type.Visible = false; } } } }
/// <summary> /// Lorsque l'utilisateur appuie sur le bouton, la méthode parcourt tous les contrôles de la GroupBox /// si le contrôle en cours est une Checkbox et qu'elle n'est pas cochée alors on la coche /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_Cocher_Click(object sender, EventArgs e) { if (!Gestion_Verification.IsAdministrator()) { //Si l'utilisateur n'est pas administrateur, alors on ne coche que les trois Checkboxs suivantes cB_CCleaner.Checked = true; cB_CleanIE.Checked = true; cB_Telechargement.Checked = true; } else { //Sinon on les parcours toutes foreach (Control c in gB_Options.Controls) { //Pour chaque contrôles sur la form Options if (c is CheckBox) { //Si le contrôle en cours est un checkBox CheckBox chk = (CheckBox)c; if (!chk.Checked) { //Si la checkBox est n'est pas cochée, alors on la coche chk.Checked = true; } } } } if (Gestion_Verification.GetOSVer() == "XP") { //Si l'OS est XP alors on décoche la checkBox Superfetch cB_Superfetch.Checked = false; } }
/// <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 au chargement de la form /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void Journal_Load(object sender, EventArgs e) { if (!Directory.Exists("C:\\SBiiXpress\\Logs")) { //Si le fichier de log n'existe pas alors on affiche un message MessageBox.Show("Il s'agit de votre première utilisation de l'application, les informations seront complétées lorsque le processus d'optimisation/nettoyage aura été complété", "SBiiXpress - Informations", MessageBoxButtons.OK, MessageBoxIcon.Information); lb_NbEsp.Text = "0 Mo"; //La taille affichée sur la form est définie à zéro lb_Date.Text = DateTime.Now.ToShortDateString(); //Et la date a celle du jour } else { if (Gestion_Verification.LectureEspace_Log() != 0) { //Si la taille totale trouvée avec le log est différent de zéro if (Gestion_Verification.LectureEspace_Log().ToString().Length >= 4) { double taille = Gestion_Verification.LectureEspace_Log() / 1024; taille = Math.Round(taille, 2); lb_NbEsp.Text = taille.ToString() + " Go"; //Alors on affiche cette taille sur la form } else { lb_NbEsp.Text = Gestion_Verification.LectureEspace_Log().ToString() + " Mo"; //Alors on affiche cette taille sur la form } lb_Date.Text = Gestion_Verification.LectureDate_Log(); //Puis on affiche la date de première utilisation inscrite dans le log } else { //Sinon on mets des valeurs par défaut et on désactive le bouton lb_NbEsp.Text = "0 Mo"; lb_Date.Text = DateTime.Now.ToShortDateString(); } } }
/// <summary> /// Constructeur de la classe /// </summary> public Encre() { InitializeComponent(); if (Gestion_Verification.GetImprimante() == "Aucune") { MessageBox.Show("Aucune imprimante par défaut n'a été trouvé", "SBiiXpress - Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error); } lb_Imp.Text = Gestion_Verification.GetImprimante(); }
public Form1() { InitializeComponent(); this.WindowState = FormWindowState.Minimized; this.ShowInTaskbar = false; //Menu_SBii.Renderer = new MyRenderer(); if (!Gestion_Verification.IsAdministrator()) { MessageBox.Show("Il est recommandé de lancer cette application en mode administrateur", "SBiiXpress - Privilèges administrateur recommandés", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
private void cB_Superfetch_CheckedChanged(object sender, EventArgs e) { if (cB_Superfetch.Checked && Gestion_Verification.GetOSVer() != "XP") { Superfetch = true; } else { Superfetch = false; } }
/// <summary> /// Méthode qui permet simplement de savoir si CCleaner est installé /// </summary> /// <returns></returns> public static void RechercheCCleaner() { string test = Gestion_Verification.LectureValCleRegistre(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\CCleaner", "InstallLocation", CleanerXpress.rV); if (File.Exists(test + "\\CCleaner.exe")) { CleanerXpress.IsCCleanerPresent = true; } else { CleanerXpress.IsCCleanerPresent = false; } }
public void Hibernation() { int val = Convert.ToInt16(Gestion_Verification.LectureValCleRegistre(@"SYSTEM\CurrentControlSet\Control\Power", "HibernateEnabled")); if (val == 1) { cB_veille.Checked = true; MessageBox.Show("Nous avons détecté que la mise en veille prolongée est activée, nous vous recommandons de la desactiver", "SBiiXpress - Informations", MessageBoxButtons.OK, MessageBoxIcon.Information); } else { cB_veille.Checked = false; } }
/// <summary> /// Cette méthode gère la CheckBox pour la mise en vielle, elle s'active lorsque l'utilisateur coche ou décoche la case /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void cB_veille_MouseClick(object sender, MouseEventArgs e) { if (cB_veille.Checked) { DialogResult result = MessageBox.Show("Êtes-vous sûr de vouloir activer la mise en veille prolongée ?\n Cette action n'est pas recommandée", "SBiiXpress - Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (result == DialogResult.Yes) { Gestion_Verification.ecrireRegistre(@"SYSTEM\CurrentControlSet\Control\Power", "HibernateEnabled", 1, RegistryValueKind.DWord, rV); } } else { Gestion_Verification.ecrireRegistre(@"SYSTEM\CurrentControlSet\Control\Power", "HibernateEnabled", 0, RegistryValueKind.DWord, rV); } }
/// <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> /// Méthode qui permet de réaliser une sauvegarde de la base de registre /// </summary> public void saveRegistre() { if (Gestion_Verification.IsAdministrator()) //Vérification des droits { Gestion_Verification.SuppOldSaveReg(); //On vérifie le nombre de sauvegardes présente dans le dossier, si plus d'une sauvegarde est présente, on supprime la plus ancienne try { DirectoryInfo di = Directory.CreateDirectory("C:\\SBiiXpress\\Save\\Registry"); Exec("regedit.exe", " /E C:\\SBiiXpress\\Save\\Registry\\Save_" + DateTime.Now.ToString("dd_MM_yyyy") + ".reg"); //Création du fichier de sauvegarde avec la date actuelle bgw.ReportProgress(10); } catch (Exception err) { MessageBox.Show("Impossible de sauvegarder le registre" + Environment.NewLine + err.Message, "SBiiXpress - Erreur lors de la sauvegarde du registre", MessageBoxButtons.OK, MessageBoxIcon.Error); bgw.ReportProgress(10); } } }
/// <summary> /// Cette méthode permet de nettoyer le cache de Windows Update /// </summary> public void ClearWinUpdate() { if (Gestion_Verification.CheckService("wuauserv") == "Lancé" || Gestion_Verification.CheckService("wuauserv") == "En cours de démarrage") { Exec("cmd", " /c net stop wuauserv"); //On arrête le service de Windows Update System.Threading.Thread.Sleep(2000); //On stoppe le programme le temps que le service s'arrête Exec("cmd", "/c rd /s /Q %Windir%\\SoftwareDistribution"); //On supprime tout le dossier qui contient les fichiers de Windows Update System.Threading.Thread.Sleep(2000); //On refait une pause le temps que les fichiers soient supprimés Exec("cmd", " /c net start wuauserv"); //Puis on redémarre le service de Windows Update } else if (Gestion_Verification.CheckService("wuauserv") == "Stoppé" || Gestion_Verification.CheckService("wuauserv") == "Arrêt en cours") { Exec("cmd", " /c net stop wuauserv"); //On arrête le service de Windows Update System.Threading.Thread.Sleep(2000); //On stoppe le programme le temps que le service s'arrête Exec("cmd", "/c rd /s /Q %Windir%\\SoftwareDistribution"); //On supprime tout le dossier qui contient les fichiers de Windows Update } }
/// <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> /// Cette méthode contient le traitement principal de l'application /// </summary> public void Traitement() { if (Gestion_Verification.IsAdministrator()) //On vérifie les droits de l'utilisateur { gb_Operation.Invoke((MethodInvoker) delegate { gb_Operation.Enabled = false; }); gB_OptionsInfos.Invoke((MethodInvoker) delegate { gB_OptionsInfos.Enabled = false; }); //gb_Operation.Enabled = false; //gB_OptionsInfos.Enabled = false; if (Options.Reg) { saveRegistre(); //Si l'option de sauvegarde de registre est cochée alors on lance la sauvegarde } bgw.ReportProgress(25); //Mise à jour de la ProgressBar et du label de progression if (Options.IE) { ClearIE(); //Si l'option de nettoyage de Internet Explorer est cochée alors on lance le nettoyage } bgw.ReportProgress(35); if (Options.CCleaner) { if (Gestion_Verification.ProcessEnCours("rundll.exe") == 1) { CCleaner(); //Si l'option CCleaner est cochée et si le processus de nettoyage de IE n'est pas en cours, alors on exécute CCleaner } } bgw.ReportProgress(45); if (Options.Cleanmgr) { if (Gestion_Verification.ProcessEnCours("CCleaner") == 1 || Gestion_Verification.ProcessEnCours("CCleaner64") == 1 && Gestion_Verification.ProcessEnCours("rundll.exe") == 1) { CleanMgrAll(); //Si l'option de nettoyage de disque Windows est cochée et que tous les processus précedents sont terminés, alors on exécute Cleanmgr.exe } } bgw.ReportProgress(60); if (Options.WinUp) { if (Gestion_Verification.ProcessEnCours("CCleaner") == 1 || Gestion_Verification.ProcessEnCours("CCleaner") == 1 && Gestion_Verification.ProcessEnCours("rundll.exe") == 1 && Gestion_Verification.ProcessEnCours("cleanmgr") == 1) { ClearWinUpdate(); //Si l'option de nettoyage de Windows Update est cochée et que tous les processus précédents sont terminés alors on nettoie le cache de Windows Update } } bgw.ReportProgress(80); if (Options.DechargDll) { DechargDll(); //Ajout de la valeur permettant de décharger les DLL inutiles si l'option a été cochée } bgw.ReportProgress(100); } else { btn_Options.Invoke((MethodInvoker) delegate { btn_Options.Enabled = false; }); //Cette ligne permet de désactiver le bouton Options au lancement du traitement simple, sans générer d'erreur btn_Journal.Invoke((MethodInvoker) delegate { btn_Journal.Enabled = false; }); btn_Optimisation.Invoke((MethodInvoker) delegate { btn_Optimisation.Enabled = false; }); btn_Defrag.Invoke((MethodInvoker) delegate { btn_Defrag.Enabled = false; }); //this.btn_Journal.Enabled = false; //this.btn_Optimisation.Enabled = false; //this.btn_Defrag.Enabled = false; if (Options.CCleaner && !Options.IE) { CCleaner(); //Si seul l'option CCleaner est cochée, alors on ne lance que CCleaner } else if (Options.IE && !Options.CCleaner) { ClearIE(); //Si seul l'option de nettoyage de Internet Explorer est cochée alors on n'exécute que ce nettoyage } else { //Si les deux options sont cochées ClearIE(); //On exécute le nettoyage de Internet Explorer if (Gestion_Verification.ProcessEnCours("rundll32.exe") == 1) //On attends que le nettoyage de Internet Explorer soit terminé { CCleaner(); //Lorsque le processus précédent est terminé, on lance CCleaner } } } }
/// <summary> /// Méthode d'initialisation de la form, les cases sont cochées en fonction des derniers choix de l'utilisateur /// Par défaut, elles sont toutes cochées /// </summary> public Options() { InitializeComponent(); if (Gestion_Verification.IsAdministrator()) { AfficheOptionsAdmin(); if (Gestion_Verification.GetOSVer() != "XP") { //Si l'OS n'est pas XP, on vérifie l'état du service Superfetch if (Gestion_Verification.CheckService("superfetch") == "Stoppé") { //Si Superfetch est stoppé, on l'affiche en vert au bas de la form lb_Superfetch.Text = "Superfetch est arrêté"; lb_Superfetch.ForeColor = Color.Green; Superfetch = false; //Et on mets la variable Superfetch à false, afin que la Checkbox pour Superfetch ne se recoche pas toute seule au prochain affichage de la form Options } else if (Gestion_Verification.CheckService("superfetch") == "Lancé") { //Sinon on affiche en rouge en bas de la form que Superfetch est lancé lb_Superfetch.Text = "Superfetch est en cours"; lb_Superfetch.ForeColor = Color.Red; Superfetch = true; //Et Superfetch passe à true } } else if (Gestion_Verification.GetOSVer() == "XP") { //Si l'OS est XP alors on désactive tout ce qui concerne Superfetch sur la form Options cB_Superfetch.Visible = false; cB_Superfetch.Checked = false; lb_Superfetch.Visible = false; } //Les lignes suivantes permettent de récupérer l'état de chaque CheckBox au moment de la fermeture de la form if (Reg) { cB_SaveReg.Checked = true; } else { cB_SaveReg.Checked = false; } if (Cleanmgr) { cB_Cleanmgr.Checked = true; } else { cB_Cleanmgr.Checked = false; } if (CCleaner) { cB_CCleaner.Checked = true; } else { cB_CCleaner.Checked = false; } if (IE) { cB_CleanIE.Checked = true; } else { cB_CleanIE.Checked = false; } if (WinUp) { cB_WinUp.Checked = true; } else { cB_WinUp.Checked = false; } if (DechargDll) { cB_DLL.Checked = true; } else { cB_DLL.Checked = false; } if (Superfetch) { cB_Superfetch.Checked = true; } else { cB_Superfetch.Checked = false; } if (Telechargement) { cB_Telechargement.Checked = true; } else { cB_Telechargement.Checked = false; } } }
private void GetContenu() { try { double tailleKo = 0, tailleMo = 0, tailleGo = 0; decimal nbFichierGo = 0; int nbFiles = 0, nbDir = 0; foreach (FileInfo file in Files) { //Pour chaque fichiers du dossier de téléchargement nbFiles++; //Incrémentation du tailleKo = file.Length / 1024; //On récupère la taille du fichier courant en Ko tailleMo = Math.Round(Convert.ToDouble(tailleKo / 1024), 2); //Puis conversion en Mo tailleGo = Math.Round(Convert.ToDouble(tailleMo / 1024), 2); // Et en Go if (file.Name != "desktop.ini") { //On vérifie que le fichier en cours n'est pas Desktop.ini, qui est un fichier système if (tailleKo == 0) { dGV_Telechargement.Rows.Add(false, file.Name, "Fichier", tailleKo); //Si le fichier est très petit alors on n'ajoute que sa taille en Ko } else if (tailleGo < 0.1) { dGV_Telechargement.Rows.Add(false, file.Name, "Fichier", tailleKo, tailleMo); //Sinon on ajoute la taille en Mo } else { dGV_Telechargement.Rows.Add(false, file.Name, "Fichier", tailleKo, tailleMo, tailleGo); //Et sinon on ajoute tout } } } foreach (DirectoryInfo dir in Directories) { //Pour chaque dossiers du dossier de téléchargement nbDir++; //Incrémentation du nombre de dossier //Le traitement est le même que pour les fichiers tailleKo = Math.Round(Convert.ToDouble(Gestion_Verification.FolderSize(folder + "\\" + dir.ToString(), "Ko")), 2); tailleMo = Math.Round(Convert.ToDouble(Gestion_Verification.FolderSize(folder + "\\" + dir.ToString(), "Mo")), 2); tailleGo = Math.Round(Convert.ToDouble(Gestion_Verification.FolderSize(folder + "\\" + dir.ToString(), "Go")), 2); if (tailleKo == 0) { dGV_Telechargement.Rows.Add(false, dir.Name, "Dossier", tailleKo); } else if (tailleGo < 0.1) { dGV_Telechargement.Rows.Add(false, dir.Name, "Dossier", tailleKo, tailleMo); } else { dGV_Telechargement.Rows.Add(false, dir.Name, "Dossier", tailleKo, tailleMo, tailleGo); } } if (nbFiles == 0 && nbDir == 0) { //Si aucun fichier ni sous-dossiers n'a été trouvé, alors on désactive tout et on affiche un message dGV_Telechargement.Columns[0].Visible = false; dGV_Telechargement.Columns[1].Visible = false; dGV_Telechargement.Columns[2].Visible = false; dGV_Telechargement.Columns[3].Visible = false; dGV_Telechargement.Columns[4].Visible = false; MessageBox.Show("Le dossier est vide", "SBiiXpress - Information", MessageBoxButtons.OK, MessageBoxIcon.Information); } for (int i = 0; i < dGV_Telechargement.Rows.Count; i++) { //On vérifie s'il y a une ligne qui utilise la colonne Taille (en Go) nbFichierGo += Convert.ToDecimal(dGV_Telechargement.Rows[i].Cells["ColumnTailleGo"].Value); } if (nbFichierGo < 1) { //Si ce n'est pas le cas, alors on la désactive dGV_Telechargement.Columns["ColumnTailleGo"].Visible = false; } } catch (Exception e) { //Affichage d'un message en cas d'erreur MessageBox.Show(e.Message); } }
/// <summary> /// Cette méthode permet d'écrire dans le registre une valeur permettant de décharger automatiquement les DLL inutilisées /// </summary> public void DechargDll() { Gestion_Verification.ecrireRegistre("Software\\Microsoft\\Windows\\CurrentVersion\\Explorer", "AlwaysUnloadDll", 1, RegistryValueKind.DWord, rV); }
/// <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(); } } }
/// <summary> /// Cette méthode permet de se connecter à la base de données, dans la BDD on stocke l'adresse MAC du PC /// qui sert d'identifiant, la quantité totale d'espace libérée et le modèle d'imprimante /// </summary> public static void BDD() { //string cs = @"server=localhost;database=io1mf84j_sbiiapp;userid=root;password=;"; //Connexion à une base de donnée locale //string cs = @"server=lhcp1029.webapps.net:3306;database=sbiixpretq123456;userid=sbii2710;password=;"; //Chaîne de caractère qui contient les informations pour la connexion à la BDD string cs = @"server=lhcp1029.webapps.net:3306;database=io1mf84j_sbiixpress_appli;userid=io1mf84j_rpxiibs;password=+-123456A*bc+D-e/F;"; MySqlConnection conn = null; try { conn = new MySqlConnection(cs); //On crée une connexion SQL avec les information saisies dans la chaîne de caractères conn.Open(); //On ouvre la connexion string SelectQuery = "SELECT * from clt_config WHERE identifiant = '" + Gestion_Verification.GetMacAdress() + "'"; //Requête SLQ, on vérifie si un enregistrement avec le même identifiant existe déjà MySqlCommand cmd = new MySqlCommand(SelectQuery, conn); //On stocke la commande et les informations relatives au serveur dans une variable "cmd" MySqlDataReader dataReader = cmd.ExecuteReader(); //Exécution de la commande if (dataReader.Read()) { //Si la commande SELECT à trouver un tuple avec le même identifiant alors on fait le traitement suivant dataReader.Close(); //Fermeture du dataReader necessaire pour la commande string query = "UPDATE clt_config SET freespace ='" + Gestion_Verification.LectureEspace_Log() + "', print='" + Gestion_Verification.GetImprimante() + "' WHERE identifiant ='" + Gestion_Verification.GetMacAdress() + "'"; //On stocke la commande pour la mise à jour de l'enregistrement existant MySqlCommand UpdateQuery = new MySqlCommand(query, conn); //Stockage de la commande et des informations relatives à la connexion à la BDD UpdateQuery.ExecuteNonQuery(); //Exécution de la commande dataReader.Close(); } else if (!dataReader.Read()) { //Si aucun enregistrement avec le même identifiant existe dataReader.Close(); string query = "INSERT INTO clt_config (identifiant,freespace,print) VALUES ('" + Gestion_Verification.GetMacAdress() + "','" + Gestion_Verification.LectureEspace_Log() + "','" + Gestion_Verification.GetImprimante() + "')"; //Stockage de la commande pour créer un nouvel enregistrement avec les informations voulues MySqlCommand InsertQuery = new MySqlCommand(query, conn); //Stockage de la commande et des informations relatives à la connexion à la BDD InsertQuery.ExecuteNonQuery(); //Exécution de la commande } conn.Close(); //Fermeture de la connexion } catch (Exception ex) //En cas d'erreur, on affiche un message { MessageBox.Show("Impossible de se connecter à la base de données\n" + ex, "SBiiXpress - Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error); } }