Attendre qu'une commande shell sois terminer avent de passer a la ligne de code
SgtJazz
Messages postés18Date d'inscriptionlundi 29 mars 2004StatutMembreDernière intervention20 décembre 2005
-
8 avril 2004 à 03:11
crenaud76
Messages postés4172Date d'inscriptionmercredi 30 juillet 2003StatutMembreDernière intervention 9 juin 2006
-
8 avril 2004 à 10:33
salutation a tous. Dans la programation d'un logiciel backup cibler sur fichiers. je cherche le moyen d,attendre la fin d,une commande shell avent de passer a une autre. dans ce ka si il sajit d'un bon vieux pkzip.
Dim RetVal
RetVal = Shell("pkzip C:\test.zip c:\test.ut2", 1)
' avent que la ligne suivante sois executer,, je veux terminer la commande shell precedante
MsgBox "done"
pour ceux qui serais tenter de me dire d'utiliser un module de compression pour remplacer ma commande shell. je desire ne pas avoir recour a cette solution.
un gros Merci,
SgtJazz
A voir également:
Attendre qu'une commande shell sois terminer avent de passer a la ligne de code
SgtJazz
Messages postés18Date d'inscriptionlundi 29 mars 2004StatutMembreDernière intervention20 décembre 2005 8 avril 2004 à 04:01
j'ai oublier de specifier que toutes les sources qui parle du sujet fonctionne seulement si il n'y a pas de parametre
si je fesais shell("pkzip",1) ca fonctionnerais mais Shell("pkzip C:\test.zip c:\test.ut2", 1) ca marche pas
gaa179
Messages postés361Date d'inscriptionmercredi 21 mai 2003StatutMembreDernière intervention12 novembre 20092 8 avril 2004 à 08:07
Salut,
J'ai trouvé un module qui permet d'exécuter une commande shell et d'attendre la fin du process. Donne mopi ton adresse e-mail pour que je puisse te l'envoyer.
cs_EBArtSoft
Messages postés4525Date d'inscriptiondimanche 29 septembre 2002StatutModérateurDernière intervention22 avril 20199 8 avril 2004 à 08:21
Petite implementation simple du ShellWait :
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
Private Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" (ByVal lpszLongPath As String, ByVal lpszShortPath As String, ByVal cchBuffer As Long) As Long
Sub ShellWait(ByVal vCommand As String)
Dim mPath As String
Dim mProcess As Long
Dim mRet As Long
Dim mPID As Long
mPath = String(1024, 0)
GetShortPathName vCommand, mPath, Len(mPath)
mPath = Left$(mPath, lstrlen(mPath))
mPID = Shell(mPath, vbNormalFocus)
mProcess = OpenProcess(&H1F0FFF, 0, mPID)
Do
mRet = WaitForSingleObject(mProcess, 1000)
If mRet <> &H102& Then Exit Do
DoEvents
Loop
CloseHandle mProcess
End Sub