connaitre la fin d'un programme executé depuis une appli vb - VB/VBA/VBS - Programmation
Marsh Posté le 25-07-2003 à 22:17:21
wouatouwouatou a écrit : voila... |
regarde dans la signature, "API windows"; car je sais que l'on peut killer des programmes alors pourquoi pas détecter un qui ne fonctionne plus. Dans ton cas, tu auras, un programme qui tournera en tache de fond; pour permettre à l'autre de se lancer. Le rôle ? de savoir si le premier est fini. Au total tu en n'as trois...
sinon, va voir sur www.vbfrance.com et www.allapi.net
Marsh Posté le 29-07-2003 à 11:01:54
Comme ceci par exemple :
Private Function ShellWait(ByVal CmdLine As String) As Integer
Dim Proc As PROCESS_INFORMATION
Dim Start As STARTUPINFO
Dim lgRet As Long
'
' ... paramètre la structure ...
'
Start.cb = Len(Start)
'
' ... créé un process et récupère un handle ...
'
lgRet = CreateProcessA(0&, CmdLine, 0&, 0&, 1&, NORMAL_PRIORITY_CLASS, 0&, 0&, Start, Proc)
'
' ... actualise la barre de progression ...
'
Progression.Value = 50
DoEvents
'
' ... attends que le processus soit terminé ...
'
Do
'
' ... teste si le processus n'est pas déjà terminé ...
'
If lgRet = WAIT_OBJECT_0 Then Exit Do
DoEvents
'
' ... attribut à lgret la valeur d'état du processus de la fonction ...
'
lgRet = MsgWaitForMultipleObjects(1&, Proc.hProcess, 0&, 1000, QS_ALLINPUT)
Loop
'
' ... ferme le handle ...
'
Call CloseHandle(Proc.hProcess)
'
' ... retourne 0 si le processus est terminé ...
'
ShellWait = lgRet
End Function
Marsh Posté le 25-07-2003 à 21:11:48
voila...
comment faire pour connaitre la fin d'un programme lancé depuis une appli vb ?
je voudrais lancer deux programmes successivement... mais sequentiellement aussi... c'est à dire que le deuxieme doit se lancer uniquement quand le premier a terminé...
Si qqun sait comment faire..
Merci...
P.S: j'avais trouvé un truc getModuleUsage.. mais jsais pas tro comment faire avec... Si qqun sait..