Service nt | tous ce que vous devez savoir | inclu doc, zip et source

Description

Un Service NT est une application win32 (windows) qui se lance automatiquement au demarrage de l'ordinateur sans se logguer à une session utilisateur.
Ce petit article va vous montrer comment créer, installer et configurer les services NT crées par Delphi. (pour winNT4/5 donc WinNT/2000/XP/2003...)
Pour commencer, il y'a 2 sortes de services NT:
1) ceux qui inter-réagissent (comuniquent) avec le bureau.
2)ceux qui sont transparents et n'affichent aucun message.
(PS: pour installer un service Delphi, utilisez la syntaxe via la ligne de commande: Projet1.exe /install et donc pour le désinstaller c'est /uninstall)
pour commencer, ouvrez delphi, choisissez nouveau, puis au lieu de choisir "Form", choisissez "Service Application".
ça va vous permettre de creer une application en tand que service (bien sure le service ne contient aucune form)
en compilant cette application, votre service est crée, mais le problème que tout le monde a, c'est le fait que le service ferme une fois il est executé par le service manager de winNT, et donc au lieu qu'il meurt, on va lui dire de rester vivant tand qu'il n'a pas reçu l'ordre de fermer:
L'astuce, c'est de mettre ce code (voir code #1 ci-dessous) dans le event OnExecute.
maintenant si vous compiler le service et vous l'installez, allez ds panneau de config, puis outils d'administration, puis services, et lancer votre service et vous verrez qu'il va rester vivant ;)
maintenant le servicé etant crée, on va faire quoi avec?
ben ce que vous voulez :)
le moyen le plus facile d'executer un code c'est de creer un timer, et de mettre votre code ds la partie OnTimer (que la valeur du timer soit minimum à 5000ms pour etre sure que le service est demarré... et qui est la valeur par defaut du service)

dans le zip j'ai mit la source d'une application service NT qui comunique avec le bureau et donc ouvre la calculatrice windows puis la referme puis la réouvre puis la referme avec un interval de 1sec entre chaque ouverture et fermeture ;)

Source / Exemple :


//CODE #1 (ASTUCE CRUCIALE)
procedure TService1.ServiceExecute(Sender: TService);
begin
 whilenot Terminated do
    ServiceThread.ProcessRequests(True); //attend l'ordre de fermeture
end;

Conclusion :


pour finir, qcq trucs à signaler concernant les proprietés d'un service sous Delphi:
(si vous installez le service par /install)
DisplayName => le nom que le service affichera dans le gestionnaire de service
Interactive => TRUE pour communiquer avec le bureau
Name => nom interne du service
ServiceType => WIN32 (pour application) DEVICE (pour peripherique) FILESYSTEM (pour systeme de fichier)
StartType => AUTO (pour demarrer automatiquement avec l'ordi)...

donc voila la base (le minimum) que vous etes censé connaitre pour la création d'un service NT fonctionel ;)

ça c'est mon 1er source sous DelphiFR, en esperant d'avoir le temps de poster autre chose...

PS: une fois le service fourni ds le zip est installé par /install vous le trouverez ds service manager sous le nom "DELPHI FR SERVICE"
Vous pouvez aussi utiliser /silent pour na pas afficher un message lors de l'install ou la désinstall du service ;)

Codes Sources

A voir également

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.