Répondre

2

Pour plus de détails sur la façon de vérifier que le service est en cours d'exécution dans des conditions de lancement, voir fil this,

L'action personnalisée la plus fiable serait un appel dll C++ inséré avant l'action de LaunchConditions à la fois l'interface utilisateur et Exécuter des séquences.

Il y a un exemple d'un ici:

http://support.microsoft.com/default.aspx?scid=kb;en-us;253683.

Votre code d'action personnalisé peut vérifier le service en cours d'exécution et définir une propriété pour les conditions de lancement.

Vous pouvez utiliser ServiceController.GetServices méthode pour répertorier les services qui sont en cours d'exécution sur l'ordinateur local.

ServiceController[] scServices; 
scServices = ServiceController.GetServices(); 

// Display the list of services currently running on this computer. 

Console.WriteLine("Services running on the local computer:"); 
foreach (ServiceController scTemp in scServices) 
{ 
    if (scTemp.Status == ServiceControllerStatus.Running) 
    { 
     // Write the service name and the display name 
     // for each running service. 
     Console.WriteLine(); 
     Console.WriteLine(" Service :  {0}", scTemp.ServiceName); 
     Console.WriteLine(" Display name: {0}", scTemp.DisplayName); 
    } 
} 
2

Vous pouvez vous connecter au service comme suit:

ServiceController sc = new ServiceController("ServiceName"); 

Vous pouvez vérifier si le service est en cours d'exécution en vérifiant la propriété "Status". Status renvoie une valeur (enum) de type ServiceControllerStatus.