begin process at 2010 02 10 07:09:31
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Système

 > GESTION DES SERVICES WINDOWS

GESTION DES SERVICES WINDOWS


 Information sur la source

Note :
9 / 10 - par 1 personne
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Système Source .NET ( DotNet ) Classé sous :Windows, Service, Gestion, Démarrer, Stopper Niveau :Initié Date de création :22/08/2008 Vu / téléchargé :5 197 / 347

Auteur : boutemine

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (6)
Ajouter un commentaire et/ou une note


 Description

Cliquez pour voir la capture en taille normale
Voila, apres la suggestion des admins sur la source précédente, j'ai créé une autre similaire mais plus complete et plus longue ;)

Avec cette petite application, on peut gérer (mais d'une façon simple) les services installés

Comme toujour, l'application necessite des droits d'administration donc on doit ajouter un manifest pour l'assembly.

Source

  • using System;
  • using System.ServiceProcess;
  • using System.Windows.Forms;
  • namespace GestionDesServicesWindows
  • {
  • //NB: Ajout de référence: Assembly System.ServiceProcess
  • // Comme toujour, elle necessite des droits d'administration, donc le manifest est necessaire
  • // Bon prog ...
  • public partial class frmMain : Form
  • {
  • private void frmMain_Load(object sender, System.EventArgs e)
  • {
  • ReadSvcs();
  • }
  • public frmMain()
  • {
  • InitializeComponent();
  • }
  • private void ReadSvcs()
  • {
  • //Vecteur contenant la liste des services
  • ServiceController[] ListSvcs;
  • ListViewItem LVW;
  • //Lire la liste des services.
  • ListSvcs = ServiceController.GetServices();
  • lvwServices.Items.Clear();
  • foreach (ServiceController SingleSvc in ListSvcs)
  • {
  • LVW = lvwServices.Items.Add(SingleSvc.DisplayName);
  • LVW.SubItems.Add(SingleSvc.ServiceName);
  • LVW.SubItems.Add(SingleSvc.Status.ToString());
  • LVW.SubItems.Add(SingleSvc.ServiceType.ToString());
  • System.Text.StringBuilder dependedServices = new System.Text.StringBuilder(5000,10000);
  • foreach (ServiceController serviceController in SingleSvc.DependentServices)
  • {
  • dependedServices.Append(serviceController.DisplayName);
  • dependedServices.Append("; ");
  • }
  • LVW.SubItems.Add(dependedServices.ToString());
  • }
  • }
  • private void lvwServices_Click(object sender, System.EventArgs e)
  • {
  • //Si un élement est sélectionné
  • if (lvwServices.SelectedItems[0].Text != "")
  • {
  • switch (lvwServices.SelectedItems[0].SubItems[2].Text)
  • {
  • case "Stopped":
  • //S'il est stoppe
  • cmdStop.Enabled = false;
  • cmdStart.Enabled = true;
  • cmdPause.Enabled = false;
  • break;
  • case "Running":
  • cmdStop.Enabled = true;
  • cmdPause.Enabled = true;
  • cmdStart.Enabled = false;
  • break;
  • default:
  • cmdStop.Enabled = false;
  • cmdStart.Enabled = false;
  • cmdPause.Enabled = false;
  • break;
  • }
  • }
  • }
  • private void cmdStop_Click(object sender, System.EventArgs e)
  • {
  • if (lvwServices.SelectedItems.Count == 0) return;
  • if (lvwServices.SelectedItems[0].Text != "")
  • {
  • StopService(lvwServices.SelectedItems[0].SubItems[1].Text);
  • }
  • }
  • public void StopService(string ServiceName)
  • {
  • ServiceController[] ListSvcs;
  • ListSvcs = ServiceController.GetServices();
  • try
  • {
  • foreach (ServiceController SingleSvc in ListSvcs)
  • {
  • if (SingleSvc.ServiceName.ToUpper() == ServiceName.ToUpper())
  • {
  • SingleSvc.Stop();
  • ReadSvcs();
  • //Actualisation de la liste.
  • break;
  • }
  • }
  • }
  • catch (Exception e)
  • {
  • MessageBox.Show("Impossible de stopper le service, il peut etre désactivé.", "Erreur: " + e.Source);
  • }
  • }
  • public void StartService(string serviceName)
  • {
  • ServiceController[] ListSvcs;
  • ListSvcs = ServiceController.GetServices();
  • try
  • {
  • foreach (ServiceController SingleSvc in ListSvcs)
  • {
  • if (SingleSvc.ServiceName.ToUpper() == serviceName.ToUpper()) {
  • SingleSvc.Start();
  • ReadSvcs();
  • break;
  • }
  • }
  • }
  • catch (Exception e) {
  • MessageBox.Show("Impossible de démarrer le service, il peut etre désactivé.", "Erreur: " + e.Source);
  • }
  • }
  • private void cmdStart_Click(object sender, System.EventArgs e)
  • {
  • if (lvwServices.SelectedItems.Count == 0) return;
  • if (lvwServices.SelectedItems[0].Text != "")
  • {
  • StartService(lvwServices.SelectedItems[0].SubItems[1].Text);
  • }
  • }
  • private void cmdRefresh_Click(object sender, System.EventArgs e)
  • {
  • ReadSvcs();
  • }
  • private void cmdPause_Click(object sender, EventArgs e)
  • {
  • if (lvwServices.SelectedItems.Count == 0) return;
  • if (lvwServices.SelectedItems[0].Text != "")
  • {
  • PauseService(lvwServices.SelectedItems[0].SubItems[1].Text);
  • }
  • }
  • private void PauseService(string serviceName)
  • {
  • ServiceController[] ListSvcs;
  • ListSvcs = ServiceController.GetServices();
  • foreach (ServiceController SingleSvc in ListSvcs)
  • {
  • if (SingleSvc.ServiceName.ToUpper() == serviceName.ToUpper())
  • {
  • if (SingleSvc.CanPauseAndContinue)
  • SingleSvc.Pause();
  • else
  • {
  • MessageBox.Show("Le service ne supporte pas cette opération", "Erreur");
  • break;
  • }
  • ReadSvcs();
  • break;
  • }
  • }
  • }
  • }
  • }
using System;
using System.ServiceProcess;
using System.Windows.Forms;

namespace GestionDesServicesWindows
{
    //NB: Ajout de référence: Assembly System.ServiceProcess 
    //    Comme toujour, elle necessite des droits d'administration, donc le manifest est necessaire
    //      Bon prog ...
    public partial class frmMain : Form
    {

        private void frmMain_Load(object sender, System.EventArgs e)
        {
            ReadSvcs();
        }
        public frmMain()
        {
            InitializeComponent();
        }
        private void ReadSvcs() 
        { 
            //Vecteur contenant la liste des services 
            ServiceController[] ListSvcs; 
            ListViewItem LVW; 
            //Lire la liste des services. 
            ListSvcs = ServiceController.GetServices(); 
            
            lvwServices.Items.Clear(); 

            foreach (ServiceController SingleSvc in ListSvcs)
            { 
                LVW = lvwServices.Items.Add(SingleSvc.DisplayName); 
                LVW.SubItems.Add(SingleSvc.ServiceName); 
                LVW.SubItems.Add(SingleSvc.Status.ToString()); 
                LVW.SubItems.Add(SingleSvc.ServiceType.ToString()); 

                System.Text.StringBuilder dependedServices = new System.Text.StringBuilder(5000,10000); 

                foreach (ServiceController serviceController in SingleSvc.DependentServices) 
                { 
                    dependedServices.Append(serviceController.DisplayName); 
                    dependedServices.Append("; "); 
                } 
                LVW.SubItems.Add(dependedServices.ToString()); 
            } 
        }

        private void lvwServices_Click(object sender, System.EventArgs e)
        {
            //Si un élement est sélectionné 
            if (lvwServices.SelectedItems[0].Text != "")
            {
                switch (lvwServices.SelectedItems[0].SubItems[2].Text)
                {
                    case "Stopped":
                        //S'il est stoppe 
                        cmdStop.Enabled = false;
                        cmdStart.Enabled = true;
                        cmdPause.Enabled = false;
                        break;

                    case "Running":
                        cmdStop.Enabled = true;
                        cmdPause.Enabled = true;
                        cmdStart.Enabled = false;
                        break;

                    default:
                        cmdStop.Enabled = false;
                        cmdStart.Enabled = false;
                        cmdPause.Enabled = false;
                        break;
                }
            }
        }

        private void cmdStop_Click(object sender, System.EventArgs e)
        {
            if (lvwServices.SelectedItems.Count == 0) return;
            if (lvwServices.SelectedItems[0].Text != "")
            {
                StopService(lvwServices.SelectedItems[0].SubItems[1].Text);
            }
        }

        public void StopService(string ServiceName) 
        { 
            ServiceController[] ListSvcs; 
            ListSvcs = ServiceController.GetServices(); 
            try 
            {
                foreach (ServiceController SingleSvc in ListSvcs)
                { 
                    if (SingleSvc.ServiceName.ToUpper() == ServiceName.ToUpper()) 
                    { 
                        SingleSvc.Stop(); 
                        ReadSvcs(); 
                        //Actualisation de la liste. 
                        break; 
                    } 
                } 
            } 
            catch (Exception e) 
            { 
                MessageBox.Show("Impossible de stopper le service, il peut etre désactivé.", "Erreur: " + e.Source); 
            } 
        }

        public void StartService(string serviceName) 
        { 
            ServiceController[] ListSvcs; 
            ListSvcs = ServiceController.GetServices(); 

            try 
            {
                foreach (ServiceController SingleSvc in ListSvcs)
                { 
                    if (SingleSvc.ServiceName.ToUpper() == serviceName.ToUpper()) { 
                        SingleSvc.Start(); 
                        ReadSvcs(); 
                        break; 
                    } 
                } 
            } 
            catch (Exception e) { 
                MessageBox.Show("Impossible de démarrer le service, il peut etre désactivé.", "Erreur: " + e.Source); 
            } 
        }

        private void cmdStart_Click(object sender, System.EventArgs e)
        {
            if (lvwServices.SelectedItems.Count == 0) return;
            if (lvwServices.SelectedItems[0].Text != "")
            {
                StartService(lvwServices.SelectedItems[0].SubItems[1].Text);
            }
        }
        private void cmdRefresh_Click(object sender, System.EventArgs e)
        {
            ReadSvcs();
        }

        private void cmdPause_Click(object sender, EventArgs e)
        {
            if (lvwServices.SelectedItems.Count == 0) return;
            if (lvwServices.SelectedItems[0].Text != "")
            {
                PauseService(lvwServices.SelectedItems[0].SubItems[1].Text);
            }
        }

        private void PauseService(string serviceName)
        {
            ServiceController[] ListSvcs;

            ListSvcs = ServiceController.GetServices();


                foreach (ServiceController SingleSvc in ListSvcs)
                {
                    if (SingleSvc.ServiceName.ToUpper() == serviceName.ToUpper())
                    {
                        if (SingleSvc.CanPauseAndContinue)
                            SingleSvc.Pause();
                        else
                        {
                            MessageBox.Show("Le service ne supporte pas cette opération", "Erreur");
                            break;
                        }
                        ReadSvcs();
                        break;
                    }
                }
        }
    } 
}


 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture Source .NET (Dotnet) ANALYSEUR LEXICAL ET SYNTAXIQUE DES FORMULES PROPOSITIONNELL...
Source avec Zip Source avec une capture Source .NET (Dotnet) PROTEGER SON APPLICATION, AUTHENTIFICATION PAR COMPTES SYSTÈ...
Source avec Zip Source .NET (Dotnet) CREATION DES POINTS DE RESTAURATION SYSTÈME
Source avec Zip Source avec une capture Source .NET (Dotnet) SAVOIR L'ADRESSE PHYSIQUE (MAC) DES CARTES RÉSEAUX DE L'ORDI...
Source avec Zip Source .NET (Dotnet) [DÉBUTANTS] ANIMATION DES FENETRES, CHARME SPÉCIALE POUR VOT...

 Sources de la même categorie

Source avec Zip Source avec une capture Source .NET (Dotnet) GESTION DES LANGUES, COUNTRIES, CHAÎNES DE CARACTÈRE SIMPLE par gourky
Source avec Zip Source avec une capture Source .NET (Dotnet) EXPLORER LA MFT D'UNE PARTITION NTFS par Willi
Source avec Zip Source avec une capture Source .NET (Dotnet) WRAPPER COMPLET SUR L'API DE BIOMÉTRIE DE WINDOWS 7 par Willi
Source avec Zip Source .NET (Dotnet) UTILISER L'ASSISTANT DE GRAVURE DE WINDOWS par Willi
Source avec Zip Source avec une capture Source .NET (Dotnet) EASYDESKXP par neo2k2

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture Source .NET (Dotnet) RECHERCHE ET GESTION DE FICHIERS PERSONNALISÉES par JeremyLecouvert
Source avec Zip Source avec une capture Source .NET (Dotnet) GESTION DES LANGUES, COUNTRIES, CHAÎNES DE CARACTÈRE SIMPLE par gourky
Source avec Zip Source avec une capture Source .NET (Dotnet) SERVICES WINDOWS par thebestdrummer
Source avec Zip Source avec une capture Source .NET (Dotnet) INFILESEEKER par swonder
Source .NET (Dotnet) DEBUGAGE D'UN SERVICE WINDOWS par Crazyht

Commentaires et avis

Commentaire de ricklekebekoi le 26/08/2008 17:05:45

Han tiens c'est nouveau ça un switch/case sur une chaine de caractere, ou bien il a toujours été possible de le faire et je n'ai seulement que pris pour acquis qu'on pouvais pas ?

Commentaire de boutemine le 26/08/2008 19:10:17

Biensur on peut le faire sur tous les objets valueType

Commentaire de Gendal67 le 20/10/2008 06:24:56

Oui, on peut le faire.
Par contre, un String n'est pas un type valeur mais un type référence

Commentaire de Gendal67 le 20/10/2008 06:40:26

Je m'étais jamais posé la question sur un switch/case sur String en fait.
La réflexion de Rick m'a donné l'envie de faire des tests.

Conclusion :

. Un case s'utilise exclusivement avec des constantes. Les chaines de caractères en .NET étant immuables, elles sont donc toutes constantes (si vous changez la chaine, .NET recrée une nouvelle implicitement avec les nouvelles données)

. Si vous déclarer un objet (autre que String) avec le modificateur const afin qu'il soit possible de faire un switch/case dessus, Visual Studio vous informera d'un Warning du type "Tout objet const autre que Sring est obligatoirement initialisé à null".

-> Conclusion finale : le type String est un type particulier dont le comportement vis à vis des switch/case ne semble pas pouvoir être reproduit.
La seule chose que l'on puisse faire c'est faire un switch(monObjet) avec des case de type valueType constantes... en implémentant biensur l'opérateur de cast implicite de monObjet en ce type valueType ; ça, ça fonctionne.

Bref, désolé pour la digression là dessus...
Sinon, merci beaucoup pour la source, j'avais justement besoin de ça pour mon projet !

Cordialement,
Jack

Commentaire de boutemine le 21/10/2008 18:04:39

Slt jack
Et oui, c vrai, le string est un polymorphe ;)

Esperant que la source vous aide dans ton project

Bon prog

Commentaire de poulpe86 le 27/10/2008 09:50:14 9/10

parfaitement ce que je cherchait... merci beaucoup

(note maximal sauf la dernière étoile : il pourrait y avoir un petit peu plus de commentaire ;))

excellente source

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Démarrer un processus à partir d'un service windows [ par SharpMao ] Hello,Je dois réaliser un service windows qui doit lancer à interval régulier des processus.Un de ces processus doit être lanc&#23 Installation service Windows [ par boutonk ] Bonjour a tous,Une question assez urgente: Comment fait-on pour installer un service windows créé en c# sur un pc qui ne possede pas d'invit Exécution de l'application au démarrage de windows [ par Muroachi ] Bonjour,voilà j'ai une application d'alerte, et j'aimerais que celle-ci se lance au démarrage de windons... Et que celà puisse être désactivable par l Gestion de session windows [ par KorBen31 ] Bonjour Je cherche a savoir si il etait possible de gere une session windows Par exemple un logiciel qui est lancer meme quand la session n'est pas ou Services windows + impression [ par hoymille ] Bonjour,J'ai réalisé iune application qui permet d'imprimer le contenu de fichiers dès qu'il y a des fichiers dans un certain dossier.M Windows Service [ par z_san ] Bonjour à tousVoilà j'ai réalisé un service Windows que j'ai créer et qui se lancera au démarrage de la bécane, je voudrais y ajouter une icône dans l Erreur dans un service Windows [ par titi66 ] Bonjour j'ai developpé un service Window, qui fonctionne très bien sur mon poste. Par contre quand je l'installe sur le poste définitf il refuse de service windows multiprocesseur [ par petitou ] Bonjour à tous,J'ai une application client/serveur qui utilise actuellement les WebServices. Le serveur est IIS et la machine possède 4 proc Service windows formulaire [ par djissi ] Bonjour j'ai un piti problème avec mon service windows. En effet dans le onStart de mon service j'essai d'afficher un formulaire faisant parti de mon Service Windows [ par lamiruth ] STP je souhaite donner un doms significatif à un service Windows développé dans un environnement VS 2005.Il s'agit du nom qui apparait dans la rubriqu


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,811 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales