Je débute avec une création d'un service [Résolu]

Signaler
Messages postés
36
Date d'inscription
dimanche 28 octobre 2007
Statut
Membre
Dernière intervention
4 juillet 2014
-
 Cirec -
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 .

45 réponses

Messages postés
36
Date d'inscription
dimanche 28 octobre 2007
Statut
Membre
Dernière intervention
4 juillet 2014

ok Bacterius , thinks, je test et je re
Messages postés
36
Date d'inscription
dimanche 28 octobre 2007
Statut
Membre
Dernière intervention
4 juillet 2014

la fonction CreateService est marché corresctement car elle a retourné une valeur supérieur à 0 mais le service n'est pas stopé , je ne sais pas ou le probleme , apres le CreateService g fait ca :
Srv_Hwnd := OpenService(Srv_CtrlMngr, PChar('service1'), SERVICE_ALL_ACCESS);
et ca retourné un 0 ce qui est faux ,
tu peut m'aider Bacterius , et merci.
Messages postés
36
Date d'inscription
dimanche 28 octobre 2007
Statut
Membre
Dernière intervention
4 juillet 2014

tu veut dire quoi par l'exécutable , dans mon projet j'ai deux fichier "Project2" et "Unit1" , je devai ecrire quel chemin des deux ??
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
8
@Message 1 : Normalement, quand tu fais CreateService, ça te renvoie directement le handle du service, donc pas besoin d'appeller OpenService par dessus.

@Message 2 : Application.ExeName donne l'emplacement de l'executable (.exe).
Donc, PChar(Application.ExeName).

Cordialement, Bacterius !
Messages postés
36
Date d'inscription
dimanche 28 octobre 2007
Statut
Membre
Dernière intervention
4 juillet 2014

bacterius, cher ami , t toujours là ?
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
8
Euh oui ... je reçois un e-mail à chaque fois que tu postes ^^' donc je suis là.

Cordialement, Bacterius !
Messages postés
36
Date d'inscription
dimanche 28 octobre 2007
Statut
Membre
Dernière intervention
4 juillet 2014

merci bien bacterius, dsl pour le retard , ma connection est un peut lente
Messages postés
36
Date d'inscription
dimanche 28 octobre 2007
Statut
Membre
Dernière intervention
4 juillet 2014

tu veut dire Application.ExName  , ca marché sans e chez moi
mais pourtant le CreateService c pas marché , tien le voila toute la phrase :

   S:=CreateService(Srv_Ctrlmngr,PChar('service1'),PChar('service1'),SC_MANAGER_ALL_ACCESS,SERVICE_WIN32_OWN_PROCESS,SERVICE_AUTO_START,SERVICE_ERROR_IGNORE,PChar( 'Application.ExName' ),nil,nil,nil,nil,nil);
S retourne un 0 , c pas juste non ?
Messages postés
36
Date d'inscription
dimanche 28 octobre 2007
Statut
Membre
Dernière intervention
4 juillet 2014

oh non , Bacterius , cette erreur est affiché : undeclared ExeName, je ne sais pas quoi faire , je me coince ptit à ptit
Messages postés
36
Date d'inscription
dimanche 28 octobre 2007
Statut
Membre
Dernière intervention
4 juillet 2014

dsl bacterius si je te dérange avec mes questions , mais c mon projet de sin d'études , et je ne sais rien en delphi , d'hailleur je le connai ca fait 2 semaine , lol,
tien g fait ca :
 S :=CreateService(Srv_Ctrlmngr,PChar('service1'),PChar('service1'),SC_MANAGER_ALL_ACCESS,SERVICE_WIN32_OWN_PROCESS,SERVICE_AUTO_START,SERVICE_ERROR_IGNORE,PChar( Application.ExeName ),nil,nil,nil,nil,nil);

et il me dit toujours undeclared ExeName..
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
8
Non, ce n'est pas normal.
Il existe une API supra-utile, qui s'appelle GetLastError. Elle permet de récupérer la dernière erreur d'une API pour un processus.
Fais Err := GetLastError; juste après CreateService, et dis-moi à quoi est égal Err.

Cordialement, Bacterius !
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
8
Application.ExeName est déclaré dans Forms. Ajoute "Forms" à ta clause Uses.

Cordialement, Bacterius !
Messages postés
36
Date d'inscription
dimanche 28 octobre 2007
Statut
Membre
Dernière intervention
4 juillet 2014

g remplacer Application.ExeName par  Application.GetNamePath et ca l'etre plus acceptable , mais le CreateService ne marche pas toujours
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
8
PS : c'est limite de la messagerie instantanée là lol ...

Si tu veux on communique en MSN, parce que là on va pourrir le forum lol.

Cordialement, Bacterius !
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
8
NON !

GetNamePath est une fonction COM qui ne doit pas être utilisée par l'utilisateur ! Utilise Application.ExeName.

Alors cette adresse MSN ? Envoie par message privé, ne la lance pas sur le forum !

Cordialement, Bacterius !
Messages postés
36
Date d'inscription
dimanche 28 octobre 2007
Statut
Membre
Dernière intervention
4 juillet 2014

ok bacterius , mais g mis Err := GetLastError; apres CreateService mais la compilation s'arrete avant la ligne Err et il me dit il est pas déclarer , pourtant g mis Forms dans uses.
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
8
Oui mais il faut que tu déclares une autre variable nommée Err (Integer).

var Err: Integer;

Cordialement, Bacterius !
Messages postés
36
Date d'inscription
dimanche 28 octobre 2007
Statut
Membre
Dernière intervention
4 juillet 2014

nn, je parle de ExeName , il me dit qu'il est pas déclaré , pas probleme pour Err
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
8
Application.ExeName non déclaré ???
Quelle version de Delphi as-tu ?

Cordialement, Bacterius !
Messages postés
36
Date d'inscription
dimanche 28 octobre 2007
Statut
Membre
Dernière intervention
4 juillet 2014

peut car j'ai crée un service dès le début pas une application .