Soyez le premier à donner votre avis sur cette source.
Vue 15 621 fois - Téléchargée 1 278 fois
using System; using System.Drawing; using System.Collections; using System.ComponentModel; using System.Windows.Forms; using System.Data; using System.ServiceProcess; using System.Web; using System.Diagnostics; using System.Threading; using System.IO; namespace My_PCO { /// <summary> /// Ce Programme fait le listing des services, drivers et processus Windows. /// Il y a entre autres la possibilité de pouvoir influer sur certaines options /// (Arret, Démarrage, Pause, Redemarrage pour les services), /// (Terminer, Nouveau pour les processus) /// et un Refresh pour les drivers. /// </summary> public class Form1 : System.Windows.Forms.Form { private System.Windows.Forms.MenuItem InterrogationItem; private System.Windows.Forms.MenuItem AboutProjectItem; private System.Windows.Forms.MainMenu BarreDeMenu; private System.Windows.Forms.TabPage tabPage1; private System.Windows.Forms.TabControl tabOnglet; private System.Windows.Forms.MenuItem menuFichier; private System.Windows.Forms.MenuItem ExecuteItem; private System.Windows.Forms.TabPage tabPage2; private System.Windows.Forms.ListView listeProcessus; private System.Windows.Forms.TabPage tabPage3; private System.Windows.Forms.ListView listeServices; private System.Windows.Forms.ListView listeDrivers; private System.Windows.Forms.ColumnHeader columnNomServices; private System.Windows.Forms.ColumnHeader columnEtat; private System.Windows.Forms.ColumnHeader columnNomConvivial; private System.Windows.Forms.ColumnHeader columnNomDriver; private System.Windows.Forms.ColumnHeader columnNomDriverConvivial; private System.Windows.Forms.ColumnHeader columnEtatDriver; private System.Windows.Forms.ColumnHeader columnNomProcessus; private System.Windows.Forms.Button BtnCloseProcess; private System.Windows.Forms.Button btnStartService; private System.Windows.Forms.Button BtnPauseService; private System.Windows.Forms.Button BtnRestartService; private System.Windows.Forms.Button BtnStopService; private System.Windows.Forms.Button BtnRefreshProcess; private System.Windows.Forms.Button BtnRefreshServices; private System.Windows.Forms.Button BtnRefreshDrivers; private System.Windows.Forms.ColumnHeader columnId; private System.Windows.Forms.ColumnHeader columnMemoire; private System.Windows.Forms.PictureBox pictureBox1; private System.Windows.Forms.MenuItem menuHelp; private System.Windows.Forms.MenuItem menuExit; /// <summary> /// Variable nécessaire au concepteur. /// </summary> private System.ComponentModel.Container components = null; //Fonction permettant d'obtenir la liste de tous les processus //et de les afficher dans une listView listeProcessus. protected void AvoirProcessus() { try { //Variables dans lesquelles nous récupèrerons qques données des processus string Nom_Processus, number_id, process_memory; listeProcessus.Items.Clear(); foreach(Process myProcess in Process.GetProcesses()) { Nom_Processus=myProcess.ProcessName; //retourne le nom des processus number_id=myProcess.Id.ToString(); //leur id process_memory=myProcess.NonpagedSystemMemorySize.ToString()+" ko"; // leur mémoire paginée listeProcessus.Items.Add(new ListViewItem(new string[]{Nom_Processus, number_id, process_memory})); } } catch { MessageBox.Show("Impossible de lister les processus"); } } //Fonction permettant d'obtenir la liste de tous les Services //et de les afficher dans une listView listeServices protected void AvoirServices() { try { string Nom_Service, Nom_Complet, Etat=""; listeServices.Items.Clear(); foreach (ServiceController monservice in ServiceController.GetServices()) { Nom_Service=monservice.ServiceName; Nom_Complet=monservice.DisplayName; if (monservice.Status==ServiceControllerStatus.Stopped) Etat="Arrêté"; if (monservice.Status==ServiceControllerStatus.Running) Etat="Démarré"; if (monservice.Status==ServiceControllerStatus.Paused) Etat="En pause"; listeServices.Items.Add(new ListViewItem(new string[]{Nom_Service, Nom_Complet, Etat})); } } catch { MessageBox.Show("Impossible de lister les services"); } } //Fonction faisant la liste de tous les Drivers protected void AvoirDrivers() { try { string Nom_Drivers,Nom_Complet, Etat=""; listeDrivers.Items.Clear(); foreach (ServiceController mondriver in ServiceController.GetDevices()) { Nom_Drivers=mondriver.ServiceName; Nom_Complet=mondriver.DisplayName; if (mondriver.Status==ServiceControllerStatus.Stopped) Etat="Arrêté"; if (mondriver.Status==ServiceControllerStatus.Running) Etat="Démarré"; if (mondriver.Status==ServiceControllerStatus.Paused) Etat="En pause"; listeDrivers.Items.Add(new ListViewItem(new string[]{Nom_Drivers, Nom_Complet, Etat})); } } catch { MessageBox.Show("Impossible de lister les drivers"); } } public Form1() { // // Requis pour la prise en charge du Concepteur Windows Forms // // Nous initialisons nos différents affichages, Services, Drivers et Processus InitializeComponent(); AvoirServices(); AvoirDrivers(); AvoirProcessus(); // // TODO : ajoutez le code du constructeur après l'appel à InitializeComponent // } /// <summary> /// Nettoyage des ressources utilisées. /// </summary> protected override void Dispose( bool disposing ) { if( disposing ) { if (components != null) { components.Dispose(); } } base.Dispose( disposing ); } #region Windows Form Designer generated code /// <summary> /// Méthode requise pour la prise en charge du concepteur - ne modifiez pas /// le contenu de cette méthode avec l'éditeur de code. /// </summary> private void InitializeComponent() { System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form1)); this.BarreDeMenu = new System.Windows.Forms.MainMenu(); this.menuFichier = new System.Windows.Forms.MenuItem(); this.ExecuteItem = new System.Windows.Forms.MenuItem(); this.menuExit = new System.Windows.Forms.MenuItem(); this.InterrogationItem = new System.Windows.Forms.MenuItem(); this.AboutProjectItem = new System.Windows.Forms.MenuItem(); this.menuHelp = new System.Windows.Forms.MenuItem(); this.tabOnglet = new System.Windows.Forms.TabControl(); this.tabPage1 = new System.Windows.Forms.TabPage(); this.BtnRefreshProcess = new System.Windows.Forms.Button(); this.BtnCloseProcess = new System.Windows.Forms.Button(); this.listeProcessus = new System.Windows.Forms.ListView(); this.columnNomProcessus = new System.Windows.Forms.ColumnHeader(); this.columnId = new System.Windows.Forms.ColumnHeader(); this.columnMemoire = new System.Windows.Forms.ColumnHeader(); this.tabPage3 = new System.Windows.Forms.TabPage(); this.BtnRefreshDrivers = new System.Windows.Forms.Button(); this.listeDrivers = new System.Windows.Forms.ListView(); this.columnNomDriver = new System.Windows.Forms.ColumnHeader(); this.columnNomDriverConvivial = new System.Windows.Forms.ColumnHeader(); this.columnEtatDriver = new System.Windows.Forms.ColumnHeader(); this.tabPage2 = new System.Windows.Forms.TabPage(); this.BtnRefreshServices = new System.Windows.Forms.Button(); this.BtnStopService = new System.Windows.Forms.Button(); this.BtnRestartService = new System.Windows.Forms.Button(); this.BtnPauseService = new System.Windows.Forms.Button(); this.btnStartService = new System.Windows.Forms.Button(); this.listeServices = new System.Windows.Forms.ListView(); this.columnNomServices = new System.Windows.Forms.ColumnHeader(); this.columnNomConvivial = new System.Windows.Forms.ColumnHeader(); this.columnEtat = new System.Windows.Forms.ColumnHeader(); this.pictureBox1 = new System.Windows.Forms.PictureBox(); this.tabOnglet.SuspendLayout(); this.tabPage1.SuspendLayout(); this.tabPage3.SuspendLayout(); this.tabPage2.SuspendLayout(); this.SuspendLayout(); // // BarreDeMenu // this.BarreDeMenu.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { this.menuFichier, this.InterrogationItem}); // // menuFichier // this.menuFichier.Index = 0; this.menuFichier.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { this.ExecuteItem, this.menuExit}); this.menuFichier.Text = "Fichier"; // // ExecuteItem // this.ExecuteItem.Index = 0; this.ExecuteItem.Text = "Executer"; this.ExecuteItem.Click += new System.EventHandler(this.ExecuteItem_Click); // // menuExit // this.menuExit.Index = 1; this.menuExit.Text = "Exit"; this.menuExit.Click += new System.EventHandler(this.menuExit_Click); // // InterrogationItem // this.InterrogationItem.Index = 1; this.InterrogationItem.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { this.AboutProjectItem, this.menuHelp}); this.InterrogationItem.Text = "?"; // // AboutProjectItem // this.AboutProjectItem.Index = 0; this.AboutProjectItem.Text = "A propos!"; this.AboutProjectItem.Click += new System.EventHandler(this.AboutProjectItem_Click); // // menuHelp // this.menuHelp.Index = 1; this.menuHelp.Text = "Help!!"; this.menuHelp.Click += new System.EventHandler(this.menuHelp_Click); // // tabOnglet // this.tabOnglet.Controls.AddRange(new System.Windows.Forms.Control[] { this.tabPage1, this.tabPage3, this.tabPage2}); this.tabOnglet.Dock = System.Windows.Forms.DockStyle.Bottom; this.tabOnglet.Location = new System.Drawing.Point(0, 89); this.tabOnglet.Name = "tabOnglet"; this.tabOnglet.SelectedIndex = 0; this.tabOnglet.Size = new System.Drawing.Size(512, 320); this.tabOnglet.TabIndex = 0; // // tabPage1 // this.tabPage1.Controls.AddRange(new System.Windows.Forms.Control[] { this.BtnRefreshProcess, this.BtnCloseProcess, this.listeProcessus}); this.tabPage1.Location = new System.Drawing.Point(4, 22); this.tabPage1.Name = "tabPage1"; this.tabPage1.Size = new System.Drawing.Size(504, 294); this.tabPage1.TabIndex = 0; this.tabPage1.Text = "Processus"; // // BtnRefreshProcess // this.BtnRefreshProcess.BackColor = System.Drawing.SystemColors.ControlLight; this.BtnRefreshProcess.Location = new System.Drawing.Point(400, 260); this.BtnRefreshProcess.Name = "BtnRefreshProcess"; this.BtnRefreshProcess.TabIndex = 3; this.BtnRefreshProcess.Text = "Refresh"; this.BtnRefreshProcess.Click += new System.EventHandler(this.BtnRefreshProcess_Click); // // BtnCloseProcess // this.BtnCloseProcess.BackColor = System.Drawing.SystemColors.ControlLight; this.BtnCloseProcess.Location = new System.Drawing.Point(372, 56); this.BtnCloseProcess.Name = "BtnCloseProcess"; this.BtnCloseProcess.Size = new System.Drawing.Size(128, 23); this.BtnCloseProcess.TabIndex = 2; this.BtnCloseProcess.Text = "Terminer le Processus"; this.BtnCloseProcess.Click += new System.EventHandler(this.BtnCloseProcess_Click); // // listeProcessus // this.listeProcessus.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { this.columnNomProcessus, this.columnId, this.columnMemoire}); this.listeProcessus.Location = new System.Drawing.Point(12, 32); this.listeProcessus.Name = "listeProcessus"; this.listeProcessus.Size = new System.Drawing.Size(350, 250); this.listeProcessus.TabIndex = 0; this.listeProcessus.View = System.Windows.Forms.View.Details; // // columnNomProcessus // this.columnNomProcessus.Text = "Nom Processus"; this.columnNomProcessus.Width = 90; // // columnId // this.columnId.Text = "Id"; // // columnMemoire // this.columnMemoire.Text = "Memoire"; // // tabPage3 // this.tabPage3.Controls.AddRange(new System.Windows.Forms.Control[] { this.BtnRefreshDrivers, this.listeDrivers}); this.tabPage3.Location = new System.Drawing.Point(4, 22); this.tabPage3.Name = "tabPage3"; this.tabPage3.Size = new System.Drawing.Size(504, 294); this.tabPage3.TabIndex = 2; this.tabPage3.Text = "Drivers"; // // BtnRefreshDrivers // this.BtnRefreshDrivers.BackColor = System.Drawing.SystemColors.ControlLight; this.BtnRefreshDrivers.Location = new System.Drawing.Point(400, 260); this.BtnRefreshDrivers.Name = "BtnRefreshDrivers"; this.BtnRefreshDrivers.TabIndex = 1; this.BtnRefreshDrivers.Text = "Refresh"; this.BtnRefreshDrivers.Click += new System.EventHandler(this.BtnRefreshDrivers_Click); // // listeDrivers // this.listeDrivers.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { this.columnNomDriver, this.columnNomDriverConvivial, this.columnEtatDriver}); this.listeDrivers.Location = new System.Drawing.Point(12, 32); this.listeDrivers.Name = "listeDrivers"; this.listeDrivers.Size = new System.Drawing.Size(350, 250); this.listeDrivers.TabIndex = 0; this.listeDrivers.View = System.Windows.Forms.View.Details; // // columnNomDriver // this.columnNomDriver.Text = "Nom du Driver"; this.columnNomDriver.Width = 90; // // columnNomDriverConvivial // this.columnNomDriverConvivial.Text = "Nom Détaillé"; this.columnNomDriverConvivial.Width = 90; // // columnEtatDriver // this.columnEtatDriver.Text = "Etat"; // // tabPage2 // this.tabPage2.Controls.AddRange(new System.Windows.Forms.Control[] { this.BtnRefreshServices, this.BtnStopService, this.BtnRestartService, this.BtnPauseService, this.btnStartService, this.listeServices}); this.tabPage2.Location = new System.Drawing.Point(4, 22); this.tabPage2.Name = "tabPage2"; this.tabPage2.Size = new System.Drawing.Size(504, 294); this.tabPage2.TabIndex = 1; this.tabPage2.Text = "Services"; // // BtnRefreshServices // this.BtnRefreshServices.BackColor = System.Drawing.SystemColors.ControlLight; this.BtnRefreshServices.Location = new System.Drawing.Point(400, 260); this.BtnRefreshServices.Name = "BtnRefreshServices"; this.BtnRefreshServices.TabIndex = 5; this.BtnRefreshServices.Text = "Refresh"; this.BtnRefreshServices.Click += new System.EventHandler(this.BtnRefreshServices_Click); // // BtnStopService // this.BtnStopService.BackColor = System.Drawing.SystemColors.ControlLight; this.BtnStopService.Location = new System.Drawing.Point(404, 200); this.BtnStopService.Name = "BtnStopService"; this.BtnStopService.Size = new System.Drawing.Size(64, 23); this.BtnStopService.TabIndex = 4; this.BtnStopService.Text = "Arreter"; this.BtnStopService.Click += new System.EventHandler(this.BtnStopService_Click); // // BtnRestartService // this.BtnRestartService.BackColor = System.Drawing.SystemColors.ControlLight; this.BtnRestartService.Location = new System.Drawing.Point(392, 136); this.BtnRestartService.Name = "BtnRestartService"; this.BtnRestartService.Size = new System.Drawing.Size(80, 23); this.BtnRestartService.TabIndex = 3; this.BtnRestartService.Text = "Redemarrer"; this.BtnRestartService.Click += new System.EventHandler(this.BtnRestartService_Click); // // BtnPauseService // this.BtnPauseService.BackColor = System.Drawing.SystemColors.ControlLight; this.BtnPauseService.Location = new System.Drawing.Point(396, 84); this.BtnPauseService.Name = "BtnPauseService"; this.BtnPauseService.Size = new System.Drawing.Size(72, 23); this.BtnPauseService.TabIndex = 2; this.BtnPauseService.Text = "Suspendre"; this.BtnPauseService.Click += new System.EventHandler(this.BtnPauseService_Click); // // btnStartService // this.btnStartService.BackColor = System.Drawing.SystemColors.ControlLight; this.btnStartService.Location = new System.Drawing.Point(400, 20); this.btnStartService.Name = "btnStartService"; this.btnStartService.Size = new System.Drawing.Size(64, 23); this.btnStartService.TabIndex = 1; this.btnStartService.Text = "Demarrer"; this.btnStartService.Click += new System.EventHandler(this.btnStartService_Click); // // listeServices // this.listeServices.Columns.AddRange(new System.Windows.Forms.ColumnHeader[] { this.columnNomServices, this.columnNomConvivial, this.columnEtat}); this.listeServices.Location = new System.Drawing.Point(12, 32); this.listeServices.Name = "listeServices"; this.listeServices.Size = new System.Drawing.Size(350, 250); this.listeServices.TabIndex = 0; this.listeServices.View = System.Windows.Forms.View.Details; // // columnNomServices // this.columnNomServices.Text = "Nom Service"; this.columnNomServices.Width = 90; // // columnNomConvivial // this.columnNomConvivial.Text = "Nom Détaillé"; this.columnNomConvivial.Width = 90; // // columnEtat // this.columnEtat.Text = "Etat"; this.columnEtat.Width = 70; // // pictureBox1 // this.pictureBox1.Image = ((System.Drawing.Bitmap)(resources.GetObject("pictureBox1.Image"))); this.pictureBox1.Location = new System.Drawing.Point(4, 8); this.pictureBox1.Name = "pictureBox1"; this.pictureBox1.Size = new System.Drawing.Size(504, 76); this.pictureBox1.TabIndex = 1; this.pictureBox1.TabStop = false; // // Form1 // this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); this.BackColor = System.Drawing.SystemColors.ActiveBorder; this.ClientSize = new System.Drawing.Size(512, 409); this.Controls.AddRange(new System.Windows.Forms.Control[] { this.pictureBox1, this.tabOnglet}); this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D; this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); this.MaximizeBox = false; this.Menu = this.BarreDeMenu; this.Name = "Form1"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.Text = "Rapid Task Access"; this.tabOnglet.ResumeLayout(false); this.tabPage1.ResumeLayout(false); this.tabPage3.ResumeLayout(false); this.tabPage2.ResumeLayout(false); this.ResumeLayout(false); } #endregion /// <summary> /// Point d'entrée principal de l'application. /// </summary> [STAThread] static void Main() { Application.Run(new Form1()); } //---------------------------------------------- // Ci dessous, toutes les actions de nos boutons //---------------------------------------------- //Bouton rafraichi les services private void BtnRefreshServices_Click(object sender, System.EventArgs e) { AvoirServices(); } //Bouton rafraichi les drivers private void BtnRefreshDrivers_Click(object sender, System.EventArgs e) { AvoirDrivers(); } //Bouton rafraichi les processus private void BtnRefreshProcess_Click(object sender, System.EventArgs e) { AvoirProcessus(); } //Bouton Demarre un service private void btnStartService_Click(object sender, System.EventArgs e) { try { int SelectionCourante; int count=listeServices.SelectedItems.Count; if (count==0) return; SelectionCourante=listeServices.FocusedItem.Index; ServiceController monservice; ServiceController [] services=ServiceController.GetServices(); monservice=services[SelectionCourante]; if (monservice.Status==ServiceControllerStatus.Stopped) { monservice.Start(); } else { MessageBox.Show("Service déjà activé !"); } AvoirServices(); } catch { MessageBox.Show("Erreur de démarrage de Services"); } } //Bouton arretant les services private void BtnStopService_Click(object sender, System.EventArgs e) { try { int SelectionCourante; int count=listeServices.SelectedItems.Count; if (count==0) return; SelectionCourante=listeServices.FocusedItem.Index; ServiceController monservice; ServiceController [] services=ServiceController.GetServices(); monservice=services[SelectionCourante]; if (monservice.Status==ServiceControllerStatus.Running) { monservice.Stop(); } else { MessageBox.Show("Service déjà arrété !"); } AvoirServices(); } catch { MessageBox.Show("Erreur lors de l'arret du Service"); } } //Bouton pause sur un service private void BtnPauseService_Click(object sender, System.EventArgs e) { try { int SelectionCourante; int count=listeServices.SelectedItems.Count; if (count==0) return; SelectionCourante=listeServices.FocusedItem.Index; ServiceController monservice; ServiceController [] services=ServiceController.GetServices(); monservice=services[SelectionCourante]; if (monservice.Status==ServiceControllerStatus.Running) { monservice.Pause(); } else { MessageBox.Show("Service non en pause !"); } AvoirServices(); } catch { MessageBox.Show("Erreur lors de la mise en pause du Service"); } } //Bouton redemarre un service private void BtnRestartService_Click(object sender, System.EventArgs e) { try { int SelectionCourante; int count=listeServices.SelectedItems.Count; if (count==0) return; SelectionCourante=listeServices.FocusedItem.Index; ServiceController monservice; ServiceController [] services=ServiceController.GetServices(); monservice=services[SelectionCourante]; if (monservice.Status==ServiceControllerStatus.Paused) { monservice.Continue(); } else { MessageBox.Show("Service non en pause !"); } AvoirServices(); } catch { MessageBox.Show("Erreur lors du redémarrage du Service"); } } //Bouton Fermeture d'un processus private void BtnCloseProcess_Click(object sender, System.EventArgs e) { try { int SelectionCourante; int count=listeProcessus.SelectedItems.Count; if (count==0) return; SelectionCourante=listeProcessus.FocusedItem.Index; Process monprocessus; Process [] myprocess=Process.GetProcesses(); monprocessus=myprocess[SelectionCourante]; DialogResult dav = MessageBox.Show("Etes vous sur de vouloir fermer ce processus?(Cela pouvant occasionner des pertes de données ou autres sur votre ordinateur!)","Avertissement!",MessageBoxButtons.YesNo,MessageBoxIcon.Information); if(dav == DialogResult.Yes) { monprocessus.Kill(); } AvoirProcessus(); } catch { MessageBox.Show("Erreur lors de la fermeture de ce Service"); } } //Bouton nouveau processus private void btnNewProcess_Click(object sender, System.EventArgs e) { NewTask nt = new NewTask(); nt.ShowDialog(); } //Bouton nouveau processus private void ExecuteItem_Click(object sender, System.EventArgs e) { NewTask nt = new NewTask(); nt.ShowDialog(); } private void menuExit_Click(object sender, System.EventArgs e) { DialogResult dr = MessageBox.Show("Voulez vous réellement quitter l'application ?","Quitter l'application",MessageBoxButtons.YesNo, MessageBoxIcon.Information); if(dr == DialogResult.Yes) { Application.Exit(); } } private void menuHelp_Click(object sender, System.EventArgs e) { Process.Start("index.htm"); } private void AboutProjectItem_Click(object sender, System.EventArgs e) { /*C'est une windows form a part. Je n'ai pu mettre le code dsl. Téléchargez le src pr mieux le voir */ Apropos ap = new Apropos(); ap.ShowDialog(); } } }
si tu peux m'aider à le faire ?
merci d'avance.
C'est intéressant
Je te met 8/10 pour cette application (pas 10 pour les commentaires un peu trop vagues...)
Mais seulement 3/10 en suivit de tes sources :
Je voulais te poser la même question que facdaar, mais visiblement tu n'est pas revenu sur cette page depuis juillet (pas bien !!)
Non, sinon beau boulot. Ciao
Juste une petite question: Si tu as un service windows implémenté en C#, je vois maintenant comment l'arrêter, le relancer, mais comment puis-je faire pour appeler une méthode de ce service ?
Juste une petite idee en passant, peux tu en cliquant, dans l'onglet processus par exemple, sur "nom Processus" lister les processus par ordre alphabetique. Cela simplifieré la recherche non ??
SINON 10/10 CONGRATULATION ;o) !!!!!
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.