|
|
|
|
|
- Exemple de la fonction EnModeService
Exemple de la fonction EnModeService // Lancement hors service ? SI EnModeService() = Faux _ET_ EnModeTest()=Faux ALORS // Lancement hors service : ce projet étant prévu pour être un service, // on va proposer l'installation du service // Service installé ? SI ServiceExiste(gsNomService) = Faux ALORS // Non SI OuiNon("Le service n'est actuellement pas installé." + ... "Désirez-vous l'installer maintenant ?") = Vrai ALORS // Paramètres du service // Démarrage Service.Démarrage = serviceDémarrageManuel Service.DémarrageRetardé = Faux // Service "normal" Service.Type = serviceTypeSimple // Description Service.Description = "WDService WINDEV" Service.DescriptionLongue = ... "Service WINDEV avec redémarrage en cas de défaillance" // En cas d'erreur au démarrage, info dans le journal des événements Service.ErreurDémarrage = serviceErreurLog // C'est l'exécutable en cours Service.LigneCommande = ExeInfo(exeNom) // Droits Service.Utilisateur = CompteSystèmeLocal   // En cas de défaillance... // Attente de 3 secondes // (pour laisser le temps aux différentes ressources du service // d'être libérées Service.DélaiAvantActionSurDéfaillance=(3*1000) // Le nombre de défaillances est réinitialisé // au bout de 30 secondes sans défaillance Service.ReinitCompteurDéfaillance = 30 // Nombre de défaillances autorisées : 3 Service.NbActionSurDéfaillance=3  // Première défaillance : Le service redémarre Service.ActionSurDéfaillance[1] = serviceEchecRedémarreService // et pour les défaillance suivantes (ici les 4 suivantes) // on fait pareil POUR nNumDefaillance = 2 _À_ 3 Service.ActionSurDéfaillance[nNumDefaillance] = ... serviceEchecRedémarreService FIN // Installe le service SI ServiceInstalle(gsNomService) = Faux ALORS Erreur("Impossible d'installer le service : '" + ErreurInfo()) SINON // Démarre le service SI ServiceDémarre(gsNomService) = Vrai ALORS Info("Le service a été installé et démarré") SINON Erreur("Le service a été installé," ... " mais il n'a pas pu démarrer", ErreurInfo()) FIN FIN FIN SINON // Oui // Etat du service nEtatService est un entier nEtatService = ServiceEtat(gsNomService) SELON nEtatService CAS -1 // Erreur Erreur("Impossible de récupérer l'état du service : ", ... ErreurInfo())  CAS serviceEtatArrêté //Service arrêté on le relance //1 : Le démarrer //2 : Le désinstaller //3 : Ne rien faire SELON Dialogue("Le service est actuellement arrêté. " + ... "Que désirez-vous faire ?") // Le démarrer CAS 1 // Démarre le service SI ServiceDémarre(gsNomService) = Vrai ALORS Info("Le service a été installé et démarré") SINON Erreur("Le service a été installé " + ... "mais il n'a pas pu démarrer", ErreurInfo()) FIN  // Le désinstaller CAS 2 SI ServiceDésinstalle(gsNomService) = Vrai ALORS Info("Le service a été désinstallé") SINON Erreur(... "Le service n'a pas pu être désinstallé", ... ErreurInfo()) FIN // Ne rien faire CAS 3  FIN CAS serviceEtatDémarré // Service déjà démarré on l'indique SI OuiNon("Le service est actuellement déjà démarré. " + ... "Désirez-vous l'arrêter ?") ALORS SI ServiceArrête(gsNomService) = Vrai ALORS Info("Le service a bien été arrêté") SINON Erreur("Le service n'a pas pu être arrêté", ... ErreurInfo()) FIN FIN  AUTRE CAS // Autre état (attente de lancement, attente d'arrêt...) SELON nEtatService CAS serviceEtatAttenteArrêt Info("Le service est en cours d'arrêt " + ... "(il a reçu une commande d'arrêt" + ... " mais il n'est pas encore arrêté)") CAS serviceEtatAttenteDémarrage Info("Le service est en cours de démarrage " + ... "(il a reçu une commande de démarrage " + ... "mais il n'est pas encore démarré)") CAS serviceEtatAttentePause Info("Le service est en cours de mise en pause " + ... "(il a reçu une commande de pause " + ... "mais il n'est pas encore en pause)") CAS serviceEtatAttenteRelancement Info("Le service est en cours de relancement " + ... "(il a reçu une commande de relancement " + ... "mais il n'est pas encore relancé)") CAS serviceEtatEnPause SI OuiNon("Le service est actuellement en pause." + ... "Voulez-vous le ré-activer ?") ALORS SI ServiceRelance(gsNomService) = Faux ALORS Erreur("Le service est en pause" + ... "il n'a pas été possible de le relancer : ", ... ErreurInfo()) SINON Info("Le service a bien été ré-activé") FIN FIN AUTRE CAS Erreur("Le service est dans un état inattendu : " + ... nEtatService) FIN FIN FIN FinProgramme() FIN
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|