tomylibre
Messages postés37Date d'inscriptiondimanche 28 octobre 2007StatutMembreDernière intervention 4 juillet 2014
-
16 mars 2009 à 00:39
fbalien
Messages postés251Date d'inscriptiondimanche 7 décembre 2003StatutMembreDernière intervention11 novembre 2016
-
20 mars 2009 à 10:29
salut à tous, je programme un service windows avec Delphi entreprise 7 , avec un Tservice , hier g avancer un peut avec un ami dans ce forum a faire la connection au SCM et à ouvrir la connection avec mon service et à le créer , et tous ca marche bien , tous ces fonction me renvoi un nombre >0 et meme dans les service de windows , je vois mon service appelé AAAservice , mais quand je fait StartService pour le démarer , je vois qui essaye de démarre , il m'affiche démarage dans le console des service de windows mais apres se stop , voila les ligne de code que j'utilisie pour le démare :
//demarer le service
ArrayOfArguments:=nil;
if StartService(Srv_Hwnd ,0,ArrayOfArguments)then
showmessage (' démarage de service avec succe ')
else
showmessage (' erreur est survenu en démarage de service');
//fin de démarage
j'attend votre aide et merci
A voir également:
Je débute avec un service que j'ai pas pu le démarer (startservice)
tomylibre
Messages postés37Date d'inscriptiondimanche 28 octobre 2007StatutMembreDernière intervention 4 juillet 2014 18 mars 2009 à 18:05
merci bien cher ami, mais comme c mon première essai en service windows, mon service ne fait rien , juste g fait l'étape de démarrage , puis retourner son état c tous, en démarrage je vois que le service essaye de démarrer dans la fenetre des service windows, apres certain temp il arrete, puis le code de vérifiaction d'état ecrit dans mon service me revoit qu'il est arrété ...
j'attend votre aide
Merci
tomylibre
Messages postés37Date d'inscriptiondimanche 28 octobre 2007StatutMembreDernière intervention 4 juillet 2014 18 mars 2009 à 18:19
ok pur mieu expliquer voila mon simle code de service , étant donnée que le service était déja créer , et il se trouve parmi les service dans la liste des service windows ,:
procedure TAAAservice.ServiceCreate(Sender: TObject);
var
S : LongBool ;
T : Cardinal ;
Srv_Hwnd : SC_Handle;
Srv_CtrlMngr: SC_Handle;
Srv_State : TServiceStatus;
//voir etat de service
EtatDuService : word;
//voir démarer service
ArrayOfArguments : PChar;
begin
while not terminated do
begin
//////////////////////
//connection SCM windows
Srv_CtrlMngr := OpenSCManager(nil,nil, SC_MANAGER_ALL_ACCESS);
showmessage('connection au base SCM windows : '+inttostr(Srv_CtrlMngr));//cette fonction renvoi un nombre différent de 0 donc elle est juste
///////////////////
//Creation de service en base de SCM windows ( ensuite on va faire un test avant lui si le service existe
(*)T:=CreateService(Srv_Ctrlmngr,PChar('AAAservice'),PChar('AAAservice'),SC_MANAGER_ALL_ACCESS,SERVICE_WIN32_OWN_PROCESS,SERVICE_AUTO_START,SERVICE_ERROR_IGNORE,PChar( 'C:\Program Files\Borland\Delphi7\Projects\anisservice1\project1.exe'),nil,nil,nil,nil,nil);
if T>0 then
showmessage('service crée')
else
showmessage('service existe ou bien un autre erreur'); (*)
////////////////////////
//ouvrir le service
Srv_Hwnd := OpenService(Srv_CtrlMngr, PChar('AAAservice'),SERVICE_ALL_ACCESS );
showmessage('ouvertur d''un service : '+inttostr(Srv_Hwnd)) ;//si ca affiche un 0 donc pas juste
//////////////////////
//demarer le service
ArrayOfArguments:=nil;
if StartService(Srv_Hwnd ,0,ArrayOfArguments)then
showmessage (' démarage de service avec succe ')
else
showmessage (' erreur est survenu en démarage de service');
//fin de démarage
case EtatDuService of
SERVICE_CONTINUE_PENDING : showmessage('1');
SERVICE_PAUSE_PENDING : showmessage('le service est en train d''être relancé après une opération pause');
SERVICE_PAUSED : showmessage('Le service est en pause');
SERVICE_RUNNING : showmessage('Le service est démarré ');
SERVICE_START_PENDING : showmessage('Le service est en cours de démarrage');
SERVICE_STOP_PENDING : showmessage('Le service est en cours d''arrêt');
SERVICE_STOPPED: showmessage('Le service est stoppé');
else
showmessage('Etat du service ne retourne rien');
end;
//fin d'etat de service
////////////////////
//fermer les handle
CloseServiceHandle(Srv_Hwnd);
CloseServiceHandle(Srv_CtrlMngr);
fbalien
Messages postés251Date d'inscriptiondimanche 7 décembre 2003StatutMembreDernière intervention11 novembre 2016 18 mars 2009 à 21:56
Bonjour
pour les services sous delphi cote code il doit y avoire
procedure ServiceExecute(Sender: TService);
dans cette procédure c'est là que que ce déroule le service
en géneral il y a un truc du style
while (not Terminated)do
.....
si il n'y a rien c'est normal que votre service s'arrete après démarrage
il faudrait le code complet du service pour ce rendre compte
tomylibre
Messages postés37Date d'inscriptiondimanche 28 octobre 2007StatutMembreDernière intervention 4 juillet 2014 18 mars 2009 à 22:01
merci bien fbalien , mais tu veut dire que je doit faire obligatoirement qq choses dans la partiton d'exécution de service , ca doit pas etre vide!!!, mais moi je veut juste pour le moment faire un démarage 100% pour mon service , le code que g donnée est un boucle infinie c juste mais juste je veut faire le démarage , je veut que mon service avoir le status démaré c tous, mais pour le moment il fait de "démarage" puij il est stopé , et le showmessage d'erreur de démarage que g fait est elle qui arrarait !!!!!