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

VB.NET Discussion :

Attente entre chaque execution de .bat


Sujet :

VB.NET

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Attente entre chaque execution de .bat
    Bonjour,

    Débutant en VB, je viens vous solliciter !

    Le but étant d'installer de manière silencieuse un certains nombre de logiciel. L'utilisateur coche via une checkbox les logiciels à installer, puis clique sur un bouton qui lance les opérations.
    Ne sachant pas comment les lancer avec des paramètres de cette façon en VB, je lance des fichiers .bat qui installe des soft (firefox, thunderbird...)

    Ce que je n’arrive pas à faire, c'est que VB attende le premier logiciel soit installé avant de continuer les opérations. Autrement dit, qu'il attende que la fenêtre DOS 1 se ferme car la commande est terminée, avant de passer à l'exécution du deuxième .bat.

    Merci d'avance pour votre aide !

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
     Private Sub BT_INSTALL_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BT_INSTALL.Click
     
            Dim palier As Integer
            palier = ProgressBar1.Value
     
            'Installation de Net.framework 4
            'Shell("net_framework_4.bat")
            ' ProgressBar1.Value = ProgressBar1.Value + 1
     
            'Installation de Firefox
            If Me.CBOX_FF.Checked Then
                Shell("firefox.bat")
            End If
            ProgressBar1.Value = ProgressBar1.Value + 1
     
            'Installation de Thunderbird
            If Me.CBOX_TD.Checked Then
                Shell("thunderbird.bat")
            End If
            ProgressBar1.Value = ProgressBar1.Value + 1
     
            'Installation de PDFcreator
            If Me.CBOX_PDF.Checked Then
                Shell("pdfcreator.bat")
            End If
            ProgressBar1.Value = ProgressBar1.Value + 1
     
            'Installation d'Office complet
            If Me.CBOX_OFFICE_COMPLET.Checked Then
                Shell("office_2007_complet.bat")
            End If
            ProgressBar1.Value = ProgressBar1.Value + 1
     
            'Installation d'Office sans outlook
            If Me.CBOX_OFFICE_SANS_OUTLOOK.Checked Then
                Shell("office_2007_sans_outlook.bat")
            End If
            ProgressBar1.Value = ProgressBar1.Value + 1
     
            'Installation de SaveAsPDF
            If Me.CBOX_SAVEASPDF.Checked Then
                Shell("saveaspdf.bat")
            End If
            If ProgressBar1.Value <= ProgressBar1.Maximum Then
                ProgressBar1.Value = ProgressBar1.Maximum
            End If
            If ProgressBar1.Value = ProgressBar1.Maximum Then
                MsgBox("installation terminée !")
            End If
        End Sub

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    http://msdn.microsoft.com/fr-fr/libr...=vs.90%29.aspx

    le problème va être ensuite que ton appli va freezer, il ne faut pas de code long à exécuter sur le thread principal, mais en faire un autre
    => backgroundworker
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci pour ta réponse.
    J'ai bien lu le lien que tu as mis. Cependant, cela ne va pas toujours me lancer tous les .bat en même temps ?

  4. #4
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Ce que je n’arrive pas à faire, c'est que VB attende le premier logiciel soit installé avant de continuer les opérations. Autrement dit, qu'il attende que la fenêtre DOS 1 se ferme car la commande est terminée, avant de passer à l'exécution du deuxième .bat.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    // "C:\Temp\MyBatch.bat" est le batch à lancer
    Process prc = Process.Start(@"C:\Temp\MyBatch.bat"); // lancement
    prc.WaitForExit(); // attente de fin d'exécution
    
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Ou dois-je le mettre ?

    Est-ce que ceci est correct :

    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
     
    Private Sub BT_INSTALL_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BT_INSTALL.Click
     
            Dim palier As Integer
            palier = ProgressBar1.Value
     
            'Installation de Net.framework 4
            'Shell("net_framework_4.bat")
            ' ProgressBar1.Value = ProgressBar1.Value + 1
     
            'Installation de Firefox
            If Me.CBOX_FF.Checked Then
                    Process prc = Process.Start(@"firefox.bat"); // lancement
                    prc.WaitForExit(); // attente de fin d'exécution
            End If
            ProgressBar1.Value = ProgressBar1.Value + 1
    Merci pour votre aide ! Je n'ai commencé à m’intéresser au VB.net que très récemment. Donc désolé pour les questions dont les réponses peuvent sembler logiques pour vous.

  6. #6
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Est-ce que ceci est correct :
    Oui, j'espère que ça fonctionnera comme tu le souhaites .
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2012
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2012
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Une dernière chose !

    J'ai un petit point d'exclamation juste devant "Process" et "prc", me proposant de "Générer un sub de méthode pour process dans FORM1"

    Je fais quoi ?

    En cliquant dessus, il me génère les sub suivants :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     Private Sub Process(ByVal p1 As Object)
            Throw New NotImplementedException
        End Sub
     
        Private Function prc() As Object
            Throw New NotImplementedException
        End Function

  8. #8
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    "Process prc" est une syntaxe C# (désolé)
    En vb.net, ce serait "Dim prc As Process"
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  9. #9
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Citation Envoyé par will1902 Voir le message
    J'ai bien lu le lien que tu as mis. Cependant, cela ne va pas toujours me lancer tous les .bat en même temps ?
    si tu avais bien lu tu aurais vu qu'on pouvait mettre le paramètre wait à true
    et donc shell attendra la fin de l'exécution avant de passer à la ligne de code suivante
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. Réponses: 7
    Dernier message: 08/10/2014, 17h18
  2. [Système] Executer un .bat
    Par olive.m dans le forum API standards et tierces
    Réponses: 4
    Dernier message: 14/02/2009, 12h59
  3. communication entre deux executables
    Par semenzato dans le forum MFC
    Réponses: 8
    Dernier message: 13/04/2005, 22h19
  4. Réponses: 2
    Dernier message: 07/10/2004, 16h31

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