IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

[Débutant] Objet Shell attendre la fin du processus [XL-2013]


Sujet :

Macros et VBA Excel

  1. #1
    Membre actif
    Homme Profil pro
    Developpeur
    Inscrit en
    Février 2013
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Février 2013
    Messages : 180
    Points : 271
    Points
    271
    Par défaut [Débutant] Objet Shell attendre la fin du processus
    Bonjour,

    Ma requête est toute simple. J'ai une instruction batch lancé avec l'objet Shell, et j'aimerais que cette instruction bloque l’exécution de mon programme.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    retShell = Shell("""" & WINSCPPathEXE & """ /console /script=""" & s_pathFic & """", vbMaximizedFocus)
    J'ai vu sur la msdn des paramètres "wait et time out" mais malheureusement, ce n'est pas le bon objet.
    sinon si il n'est pas possible de rendre cette instruction bloquante, pourrez vous me donner un exemple pour récupérer le status du processus.
    puisque ma variable retShell contient mon PID

    Merci pour vos réponses

  2. #2
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2015
    Messages
    78
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Aube (Champagne Ardenne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2015
    Messages : 78
    Points : 127
    Points
    127
    Par défaut
    tu peux essayer un truc comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    Declare Function WaitForSingleObject Lib "kernel32" (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
    Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
    Public Const INFINITE = &HFFFF
     
    Function LanceEtAttendLaFin(ByVal code As String) As Long
        Dim ProcessHandle, ProcessId As Long
     
        ProcessId = Shell(code, vbNormalFocus)
        ProcessHandle = OpenProcess(&H1F0000, 0, ProcessId)
        LanceEtAttendLaFin = WaitForSingleObject(ProcessHandle, INFINITE)
     End Function
     
    Sub testototototititi()
     
    Dim code As String
     
    code = """" & WINSCPPathEXE & """ /console /script=""" & s_pathFic & """"
    LanceEtAttendLaFin (code)
     
    End Sub
    C'est pas de moi mais je m'en sers pour bloquer la macro le temps de l'extraction de fichier zip avec la commande shell

  3. #3
    Membre actif
    Homme Profil pro
    Developpeur
    Inscrit en
    Février 2013
    Messages
    180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Developpeur

    Informations forums :
    Inscription : Février 2013
    Messages : 180
    Points : 271
    Points
    271
    Par défaut
    Parfait, merci Minise, pour t'as réponse rapide.
    c'est exactement ce que je cherchais.

    tester et fonctionnel >> Résolu

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/06/2014, 09h23
  2. Réponses: 8
    Dernier message: 15/05/2008, 17h41
  3. [Processus][pause] attendre la fin ?
    Par MrDuChnok dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 19/07/2004, 13h51
  4. attendre la fin d'un processus
    Par philippe V dans le forum MFC
    Réponses: 2
    Dernier message: 27/02/2004, 15h37
  5. Comment Attendre la fin d'un Processus
    Par mr_titi dans le forum C++Builder
    Réponses: 3
    Dernier message: 05/06/2003, 16h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo