Shell dans vb6 [Résolu]

Signaler
Messages postés
13
Date d'inscription
jeudi 1 juillet 2004
Statut
Membre
Dernière intervention
13 septembre 2004
-
Messages postés
5
Date d'inscription
mercredi 17 mars 2004
Statut
Membre
Dernière intervention
17 août 2004
-
Bonjour,

J'utilise la commande shell pour exécuter un lot dts

comment faire pour que cette commande s'execute en modale, cad, attendre que la commande soit finie pour que vb execute la suite

merci

vincent :shy)

4 réponses

Messages postés
5
Date d'inscription
mercredi 17 mars 2004
Statut
Membre
Dernière intervention
17 août 2004

Bonjour,

Je fais moi aussi un shell pour lancer DTSRUN (mais depuis du VBA)... comment fais tu pour intercepter les erreurs éventuelles pendant l'exécution du DtsRun ?
Merci de ta réponse
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 195 internautes nous ont dit merci ce mois-ci

Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
25
J'ai un source içi donnant une version synchrone du Shell. Cela devrait te convenir.

Christophe R.
Messages postés
211
Date d'inscription
vendredi 12 décembre 2003
Statut
Membre
Dernière intervention
15 janvier 2010

Tiens j'ai un code super vieux, genre 1998, qui te permet de faire ça... je ne l'ai pas retester depuis, mais ça marchait bien...

Declare Function OpenProcess Lib "Kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Declare Function GetExitCodeProcess Lib "Kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long
Declare Sub Sleep Lib "Kernel32" (ByVal dwMilliseconds As Long)
Const STILL_ACTIVE = &H103
Const PROCESS_QUERY_INFORMATION = &H400

Public Sub gExecuteAppAndWait(ByVal sApplicationPathExe As String)

Dim hProcess As Long
Dim RetVal As Long

If Len(sApplicationPathExe) = 0 Then Exit Sub

'On capture le process ID de l'exe et on attend
On Error GoTo RunError:
hProcess = OpenProcess(PROCESS_QUERY_INFORMATION, False, Shell(sApplicationPathExe, vbNormalFocus))
Do
'Obtient le statut du process
GetExitCodeProcess hProcess, RetVal

'petite pause pour laisser windows gérer les autres évenements
DoEvents: Sleep 50

'Loop jusqu'à ce que le process statut ne soit plus actif
Loop While RetVal = STILL_ACTIVE

End Sub

Voilà, bon code

Bart-Rennes
Messages postés
5
Date d'inscription
mercredi 17 mars 2004
Statut
Membre
Dernière intervention
17 août 2004

Bonjour,

Je fais moi aussi un shell pour lancer DTSRUN (mais depuis du VBA)... comment fais tu pour intercepter les erreurs éventuelles pendant l'exécution du DtsRun ?
Merci de ta réponse