tomylibre
Messages postés37Date d'inscriptiondimanche 28 octobre 2007StatutMembreDernière intervention 4 juillet 2014
-
14 mars 2009 à 15:43
Cirec -
16 mars 2009 à 07:59
salut à tous, je vais poser ce question car g pas trouver vraimant une solution précise sur mon probleme, bon, je débute avec un service qui fait comme première étapes une connection à un BD mysql distant, et ca marché la connection , mais je veut faire un menu qui aide l'utilisateur de mon service à démarer, arreter , ou suspendre ce service , avec un icon de notification (tray icon), lorsque on clique au dessu un menu s'affiche ayyant les options : start , stop , pause. mes deux probleme c que je ne sais pas comment arreter mon service ou bien le suspendre , 2ement , j'ai pas trouver comment faire le "tray icon" , j'ai developper avec le VB ca été facile de le faire .
j'attend votre aide , et merci d'avance .
tomylibre
Messages postés37Date d'inscriptiondimanche 28 octobre 2007StatutMembreDernière intervention 4 juillet 2014 14 mars 2009 à 17:53
merci bien cher ami , wi je parle d'un service windows que je devais le crée ,mais je trouve pas de help pour le mot "winsvc" alors sache vous un emplacement ou je trouve une réponse,
encore merci cher ami
Et ensuite, double-clique sur ta fiche, et écris "WinSvc.", puis attends un peu pour voir le contenu de l'unité. A partir de là tu auras plein de fonctions pour gérer les services Windows et même en créer un !
Et puis va sur MSDN pour te renseigner sur les fonctions ce ne sont pas les plus simples API ...
procedure TForm1.FormCreate(Sender: TObject);
begin
WinSvc.
end;
tomylibre
Messages postés37Date d'inscriptiondimanche 28 octobre 2007StatutMembreDernière intervention 4 juillet 2014 14 mars 2009 à 18:20
désolé , mais j'arrive pas à gérer mon service , pour expliquer j'ai fait un autre service , je clique au dessu et j'ajout winsvc dans uses , et puis, qui peut me donner quelque instructions pour arreter ce service que g créer mainant ,
Merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
tomylibre
Messages postés37Date d'inscriptiondimanche 28 octobre 2007StatutMembreDernière intervention 4 juillet 2014 14 mars 2009 à 18:29
en faite , je vais vous donner un ptit travaille que g fait , alors dis moi si je suis en bon chemin (mon service appelé "service1") mon service doit s'arreter avant d'afficher le dernier Message:
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 14 mars 2009 à 18:09
Oui, sinon j'avais vu une unité "SvcMgr", mais je n'arrive plus à l'utiliser, je crois qu'elle gère les applications services (une TApplication mais qui te fait démarrer directement en mode service, sans que tu aies à t'en préoccuper).
tomylibre
Messages postés37Date d'inscriptiondimanche 28 octobre 2007StatutMembreDernière intervention 4 juillet 2014 14 mars 2009 à 18:51
merci bacterius , mais lorsque je fait run pour mon service dans le programme delphi , cela ne ve pas dire que mon service est crée et en marche ??
(dsl pour la police de mon code , lol)
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 14 mars 2009 à 18:57
Tu veux parler de Application.Run ?
Non, ceci déclenche uniquement le début de la boucle principale d'application.
Je t'explique en gros le principe des services Windows.
Il existe dans Windows un SCM (Service Control Manager), qui gère tous les services Windows.
Or, pour qu'une application soit considérée comme service, il faut qu'elle s'inscrive dans ce SCM. Après, elle est tranquille et peut effectuer ses opérations (sauf au début, ou c'est très délicat).
CreateService inscrit un service dans le SCM, et te permet de le paramétrer rapidement sans avoir à passer par les fonctions de paramètrage dédiées. C'est pourquoi il a autant de paramètres (mais ils sont simples, il ne faut pas être dérouté).
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 14 mars 2009 à 19:24
Rrah ... tu sais les paramètres sont affichés dans une bulle d'aide. De mémoire je ne pourrai pas te donner la syntaxe, mais tu peux chercher sur internet : regarde :
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 14 mars 2009 à 19:54
- OpenSCManager est très important, il permet d'établir la connexion avec le SCM. Il te suffit de spécifier une machine (nil si machine locale), un SCM (nil pour celui par défaut) et un type d'accès désiré (SC_MANAGER_ALL_ACCESS pour tous les droits). Il te renverra 0 si la fonction a foiré (dans ce cas ça ne sert plus à rien de continuer) ou le handle du SCM (tu devras t'en servir pour toutes les autres fonctions, donc garde-le dans une variable globale).
- OpenService permet d'établir la connexion avec un service enregistré dans un SCM défini par le handle de SCM que tu files à la fonction. Tu dois aussi spécifier le nom du service, et la fonction te renvoie le handle du service.
- ControlService envoie une commande à un service, donc le handle a été préalablement récupéré par CreateService ou OpenService.
tomylibre
Messages postés37Date d'inscriptiondimanche 28 octobre 2007StatutMembreDernière intervention 4 juillet 2014 14 mars 2009 à 20:09
J'ai trouvé beaucoup de paramètre pour la fonction CreateService , esque je doit les citer tous ou bien qq 1 car vraimant c une liste de paramètre que je croit pas que les develeppeur vont les citer tous pour créer un service non?
tomylibre
Messages postés37Date d'inscriptiondimanche 28 octobre 2007StatutMembreDernière intervention 4 juillet 2014 14 mars 2009 à 20:12
j'ai trouvé dans un site un createservice avec ces paramètre ,mais g pas compri 2 pramaètres "libelle" et un paramètre il a nommé "chemin" , et bain la voila tous :
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 14 mars 2009 à 20:14
Libellé représente le nom d'affichage du service, celui que tu verras dans les outils d'administration (genre "Onduleur"), le SvrName est le nom interne du service, qui est utilisé dans OpenService par exemple (genre "RPC32" pour l'appel de procédures distantes), et Chemin représente le chemin du service sur le disque (enfin l'executable). Voilà ...
Oublie pas que H_SC doit être le résultat d'un appel à OpenSCManager !