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

VBScript Discussion :

Comment créer une fenêtre simple, comment attendre qu'un processus se termine ?


Sujet :

VBScript

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 36
    Points : 18
    Points
    18
    Par défaut Comment créer une fenêtre simple, comment attendre qu'un processus se termine ?
    Bonjour,

    Je souhaiterais créer une fenêtre toute simple, qui contiendrait un message et un bouton. Une fois le bouton pressé, le script lance un programme .exe, attend la fin de son exécution et lance un autre script.
    Mes questions sont :
    - Comment créer une fenêtre toute simple avec un message et un bouton ?
    - Comment récupérer la "pression sur le bouton" ?

    - J'ai pu voir dans la FAQ qu'une commande permettait de lister les processus. Cependant, comment récupérer un processus de cette liste (et je ne veut pas afficher la liste dans des fenêtres comme le fait le code ci-dessous) ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        Set objWMI = GetObject("winmgmts:root\cimv2")
        sQuery = "Select * from Win32_process"
        For Each oproc In objWMI.execquery(sQuery)
            Wscript.echo oproc.Name & " = " & oproc.ExecutablePath
        Next
        Set objWMI = Nothing
    - Comment attendre que le processus se termine pour lancer une autre commande ?

    Merci !

  2. #2
    Expert confirmé
    Avatar de pc75
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    3 662
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2004
    Messages : 3 662
    Points : 4 047
    Points
    4 047
    Par défaut
    Bonjour,

    Tu peux déjà regarder du coté de InputBox

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 36
    Points : 18
    Points
    18
    Par défaut
    Finalement j'ai téléchargé l'aide indiquée par la FAQ. Voici le code permettant de faire une petite fenêtre avec un message, deux boutons, ok et annuler. Lorsque l'on clique sur ok cela exécute un autre programme.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim MyFrame
     
    MyFrame = MsgBox ("En cliquant sur ok, un logiciel sera installer,"+VbCrLf+"après l'installation, le logiciel bidul"+VbCrLf+"sera lancé.", vbOKCancel+vbInformation, "Installation bidul")
     
     
    If MyFrame = 1 Then
     
    	Set WshShell = WScript.CreateObject("WScript.Shell")
    	WshShell.Run "LittleGUI.exe", 0, true
     
    End If
    En ce qui concerne l'attente de la fin d'un processus, je continue de chercher !

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 36
    Points : 18
    Points
    18
    Par défaut
    Bon j'ai finalement trouvé comment attendre qu'un processus se termine voici le code avec les commentaires :
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    ' on intitialise quelques valeurs
    strComputer = "."
    intI = 1
    
    ' Un script WMI utilisant la classe Win32_process pour obtenir 
    ' la liste des processus actifs
    ' morceau de code pris de la FAQ dans "Comment tuer un processus?"
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    
    Set colProcessList = objWMIService.ExecQuery _
        ("Select * from Win32_Process Where Name = 'notepad.exe'")
    
    ' je fais une boucle qui continue à faire une liste tant que
    ' la liste précédente n'est pas vide
    ' soit : tant que le processus voulu est dans la liste
    ' si intI vaut 0, cela signifie que le processus est terminé
    While intI > 0
            ' on initialise la variable de comptage à chaque fois
    	intI = 0
    	Set colProcessList = objWMIService.ExecQuery _
    	("Select * from Win32_Process Where Name = 'notepad.exe'")
            ' on compte le nombre de fois qu'apparait le processus voulu dans la
            ' liste
    	For Each oproc In colProcessList
            	intI = intI + 1
            Next
    WEnd
    
    'mettre ici que l'on veut faire après la fin du processus

    Voilà, je pense qu'il y a une manière plus simple ... Sinon j'espère que ça servira à quelqu'un !

  5. #5
    Membre habitué
    Inscrit en
    Juin 2005
    Messages
    275
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 275
    Points : 186
    Points
    186
    Par défaut
    Peux-tu donner davantge de précision sur ta "fin de processus". Je ne suis pas sûr d'avoir bien compris

    La ligne de code que tu as mises :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WshShell.Run "LittleGUI.exe", 0, true
    permet justement de "bloquer" ton script jusqu'a ce que LittleGUI.exe ait totalement terminé son routine d'exécution.
    abertaud
    ---------

    - pas de réponse technique en PV, utilisez les forums
    - si vous trouvez seuls la solution, n'abandonnez pas votre post, mettez-le à jour pour les autres
    - le tag est parfois en voie d'extinction, participez à sa survie

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 36
    Points : 18
    Points
    18
    Par défaut
    Oui, en ce qui concerne la ligne où j'ai marqué "LittleGUI.exe", c'était juste pour montrer comment je faisais une fenêtre simple. Pour ce qui est du code qui attend qu'un processus se termine, tout est marqué ci-dessus avec les commentaires de chaques lignes.

    Voilà !

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Bonjour,
    le fait de mettre "true" en paramètre de ta commande "WshShell.run" va attendre que LittleGUI.exe soit finit avant de continuer, je ne vois pas trop a quoi sert le bout de code que tu as ajouté.

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 36
    Points : 18
    Points
    18
    Par défaut
    Bonjour,

    Oui le 'true' attend que le processus 'LittleGUI.exe' soit finit, mais avec cette petite fenêtre je lance un autre programme c'est pourquoi j'ai ajouté l'autre morceau de code.

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

Discussions similaires

  1. [AC-2007] Tutoriel comment créer une fenêtre d'activation pour votre base
    Par robyseb dans le forum Contribuez
    Réponses: 27
    Dernier message: 12/07/2020, 23h38
  2. Comment créer une fenêtre depuis un dialog de ressource.
    Par DelphiCool dans le forum Codes sources à télécharger
    Réponses: 0
    Dernier message: 03/02/2013, 11h10
  3. Comment créer une fenêtre la plus grande possible
    Par SuperSeb95 dans le forum Débuter
    Réponses: 19
    Dernier message: 01/06/2011, 12h42
  4. Réponses: 0
    Dernier message: 21/11/2010, 20h06
  5. Réponses: 1
    Dernier message: 21/05/2007, 10h33

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