Inverse de shell en vba

monjal26 Messages postés 45 Date d'inscription lundi 5 avril 2004 Statut Membre Dernière intervention 21 septembre 2006 - 20 avril 2004 à 14:06
florantanplan Messages postés 76 Date d'inscription mardi 11 février 2003 Statut Membre Dernière intervention 8 septembre 2006 - 20 avril 2004 à 14:47
bonjour,
est il possible de savoir quand,une application que l'on a lancé depuis excel avec la commande shell,se termine?
car il y a bien des truc en vb6 mais sous vba c'est pas pareil
merci a tous

2 réponses

florantanplan Messages postés 76 Date d'inscription mardi 11 février 2003 Statut Membre Dernière intervention 8 septembre 2006
20 avril 2004 à 14:46
Il faut utiliser ces trois api:

Private Declare Function WaitForSingleObject Lib "kernel32" _
(ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
Private Declare Function CloseHandle Lib "kernel32" _
(ByVal hObject As Long) As Long
Private Declare Function OpenProcess Lib "kernel32" _
(ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long

lngOWCHandle=Shell("c:\application.exe",vbNormalFocus)
'La tu lances ton exe et tu récupère son handle

'On attend la fin de l'exécution de l'appli
pHandle = OpenProcess(SYNCHRONIZE, False, lngOWCHandle)
ret = WaitForSingleObject(pHandle, INFINITE)
ret = CloseHandle(pHandle)

'La ton process est terminé.

Si tu veux plus d'explication sur le fonctionnement de ces api: www.allapi.net.
0
florantanplan Messages postés 76 Date d'inscription mardi 11 février 2003 Statut Membre Dernière intervention 8 septembre 2006
20 avril 2004 à 14:47
oups, paron, je t'ai pas donne la valeur des constantes:

Private Const INFINITE = -1&
Private Const SYNCHRONIZE = &H100000
0
Rejoignez-nous