Executer un Programme en l'attachant a un processus
cricri_b34
Messages postés223Date d'inscriptionmercredi 21 juillet 2004StatutMembreDernière intervention15 février 2006
-
22 avril 2005 à 16:55
cricri_b34
Messages postés223Date d'inscriptionmercredi 21 juillet 2004StatutMembreDernière intervention15 février 2006
-
18 mai 2005 à 10:16
Salut j'aimerais savoir comment executer un programme en l'attachant a un
processus ?
davidfdm2002
Messages postés14Date d'inscriptionlundi 18 avril 2005StatutMembreDernière intervention21 mai 2006 22 avril 2005 à 17:24
Moi je suis enplein dedans pour un service...
Dans la pratique pour lancer un programme depuis un autre il suffit d'utiliser createprocess..
Voici un petit morceau de code recuperé de ci de la sur le web. Avec ça tu pourra facilement trouver les autres elements necessaires.
En esperant que cela t'aide, bonne continuation :)
Try
{ Mise à zéro de la structure StartInfo }
FillChar(StartInfo,SizeOf(StartInfo),#0);
StartInfo.cb := SizeOf(StartInfo);
If CreateProcess(Nil, PChar(programme), Nil, nil, false,0, Nil, nil, StartInfo,ProcessInfo) Then
Begin
{ ProcessInfo.hProcess contient le handle du process principal de l'application }
Fin:=False;
Repeat
{ On attend la fin de l'application }
Case WaitForSingleObject(ProcessInfo.hProcess, 200)Of
WAIT_OBJECT_0 :Fin:=True; { L'application est terminée, on sort }
WAIT_TIMEOUT :; { elle n'est pas terminée, on continue d'attendre }
End;
{ Mise à jour de la fenêtre pour que l'application ne paraisse pas bloquée. }
Application.ProcessMessages;
Until Fin;
{ C'est fini }
End
Else RaiseLastOSError;
Finally
davidfdm2002
Messages postés14Date d'inscriptionlundi 18 avril 2005StatutMembreDernière intervention21 mai 2006 23 avril 2005 à 00:55
bon, mais juste en passant alors...
Aulieu de crrer un projet de base style application, tu cré un projet service, cela te cré un objet de type Tservice.
Ensuite tu implement la fonction onExecute, ou OnStrat/onBegin dans le cas d'utilisation d'un Tread. tu compile ton programme et voila. Il existe un excelent exemple Delphi sur ce site, qui m'a permit de faire egalement mes premieres armes a ce sujet. Juste fait une recherche sur Service Windows , et tu trouvera :)
voila.
cricri_b34
Messages postés223Date d'inscriptionmercredi 21 juillet 2004StatutMembreDernière intervention15 février 2006 24 avril 2005 à 05:39
J'ai chercher encore et ca me semble bcp + compliqué que ca attacher un programme a un processus
Il faut que mon programme soit considérer comment un débuggueur et ensuite je peux utiliser la fonction :
function DebugActiveProcess (dwProcessId: DWORD): BOOL
davidfdm2002
Messages postés14Date d'inscriptionlundi 18 avril 2005StatutMembreDernière intervention21 mai 2006 3 mai 2005 à 17:43
désolé pour la reponse...
woui un service est bien un programme systeme.
Tu créé ton service en delphi (delphi 6 pour moi...) , cela te cré un exe..
en ligne de commande tu ecrit
monexe.exe /install et ca te l'installe entant que service windows.
Poour le desinstaller tu retape
monexe.exe /uninstall
Voila..
Sinon je comprend pas du tout ce que tu veux faire avec le debuggage...
davidfdm2002
Messages postés14Date d'inscriptionlundi 18 avril 2005StatutMembreDernière intervention21 mai 2006 16 mai 2005 à 22:36
désolé encore pour la reponse tardive.
C'est simple depuis une fenetre Dos.
Demarrer->executer->cmd
et dans le fenetre DOS se placer dans le repertoir (c'est plus simple ).
cd c:\repertoire\monservice
et donc taper monservice.exe /install
cricri_b34
Messages postés223Date d'inscriptionmercredi 21 juillet 2004StatutMembreDernière intervention15 février 2006 17 mai 2005 à 19:17
ok, merci
mais maintenant, si je veux que mon service s'installe automatiquement.
par exemple si je me créer un petit programme qui copira le services a un endroix X, quesce q'il faut que je fasse ensuite pour installer ce service?