Je débute avec une création d'un service

Résolu
tomylibre Messages postés 37 Date d'inscription dimanche 28 octobre 2007 Statut Membre Derniè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 .

45 réponses

tomylibre Messages postés 37 Date d'inscription dimanche 28 octobre 2007 Statut Membre Dernière intervention 4 juillet 2014
14 mars 2009 à 20:18
ok Bacterius , thinks, je test et je re
0
tomylibre Messages postés 37 Date d'inscription dimanche 28 octobre 2007 Statut Membre Dernière intervention 4 juillet 2014
14 mars 2009 à 20:26
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.
0
tomylibre Messages postés 37 Date d'inscription dimanche 28 octobre 2007 Statut Membre Dernière intervention 4 juillet 2014
14 mars 2009 à 20:31
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 ??
0
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
14 mars 2009 à 20:34
@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 !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tomylibre Messages postés 37 Date d'inscription dimanche 28 octobre 2007 Statut Membre Dernière intervention 4 juillet 2014
14 mars 2009 à 20:35
bacterius, cher ami , t toujours là ?
0
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
14 mars 2009 à 20:37
Euh oui ... je reçois un e-mail à chaque fois que tu postes ^^' donc je suis là.

Cordialement, Bacterius !
0
tomylibre Messages postés 37 Date d'inscription dimanche 28 octobre 2007 Statut Membre Dernière intervention 4 juillet 2014
14 mars 2009 à 20:38
merci bien bacterius, dsl pour le retard , ma connection est un peut lente
0
tomylibre Messages postés 37 Date d'inscription dimanche 28 octobre 2007 Statut Membre Dernière intervention 4 juillet 2014
14 mars 2009 à 20:42
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 ?
0
tomylibre Messages postés 37 Date d'inscription dimanche 28 octobre 2007 Statut Membre Dernière intervention 4 juillet 2014
14 mars 2009 à 20:44
oh non , Bacterius , cette erreur est affiché : undeclared ExeName, je ne sais pas quoi faire , je me coince ptit à ptit
0
tomylibre Messages postés 37 Date d'inscription dimanche 28 octobre 2007 Statut Membre Dernière intervention 4 juillet 2014
14 mars 2009 à 20:51
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..
0
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
14 mars 2009 à 20:51
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 !
0
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
14 mars 2009 à 20:53
Application.ExeName est déclaré dans Forms. Ajoute "Forms" à ta clause Uses.

Cordialement, Bacterius !
0
tomylibre Messages postés 37 Date d'inscription dimanche 28 octobre 2007 Statut Membre Dernière intervention 4 juillet 2014
14 mars 2009 à 20:53
g remplacer Application.ExeName par  Application.GetNamePath et ca l'etre plus acceptable , mais le CreateService ne marche pas toujours
0
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
14 mars 2009 à 20:53
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 !
0
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
14 mars 2009 à 20:54
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 !
0
tomylibre Messages postés 37 Date d'inscription dimanche 28 octobre 2007 Statut Membre Dernière intervention 4 juillet 2014
14 mars 2009 à 20:58
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.
0
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
14 mars 2009 à 21:01
Oui mais il faut que tu déclares une autre variable nommée Err (Integer).

var Err: Integer;

Cordialement, Bacterius !
0
tomylibre Messages postés 37 Date d'inscription dimanche 28 octobre 2007 Statut Membre Dernière intervention 4 juillet 2014
14 mars 2009 à 21:02
nn, je parle de ExeName , il me dit qu'il est pas déclaré , pas probleme pour Err
0
Bacterius Messages postés 3792 Date d'inscription samedi 22 décembre 2007 Statut Membre Dernière intervention 3 juin 2016 10
14 mars 2009 à 21:03
Application.ExeName non déclaré ???
Quelle version de Delphi as-tu ?

Cordialement, Bacterius !
0
tomylibre Messages postés 37 Date d'inscription dimanche 28 octobre 2007 Statut Membre Dernière intervention 4 juillet 2014
14 mars 2009 à 21:04
peut car j'ai crée un service dès le début pas une application .
0
Rejoignez-nous