Rechercher dans ce blog

jeudi 11 janvier 2018

C# Déclanchement d'un event au changement d'un Service Windows







Permet de faire une capture d'un service Windows dès que le changement ce produit



          try
            {
                var query = "SELECT * FROM __InstanceModificationEvent WITHIN 1 WHERE TargetInstance Isa "win32_Service" and TargetInstance.Name like 'SERVICENAME'";
                var scope = new ManagementScope(@"root\cimv2", null);
                scope.Connect();
                EventQuery qry = new EventQuery(query);
                w = new ManagementEventWatcher(scope, qry);
                LabelAbonnement = LabelName;
                w.EventArrived += EventArrived;
                w.Start();
            }
            catch (Exception)
            {

            }
       private void EventArrived(object sender, EventArrivedEventArgs e)
        {
            try
            {
                var targetInstance = (ManagementBaseObject)e.NewEvent["TargetInstance"];
                foreach (var p in targetInstance.Properties)
                {
                    LabelAbonnement.Invoke((MethodInvoker)(() => LabelAbonnement.TextValue = targetInstance.Properties["State"].Value.ToString()));
                }
            }
            catch (Exception)
            {
            }
        }

Aucun commentaire: