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 6 et antérieur Discussion :

Lancer des commandes dos à partir d'un fichier texte


Sujet :

VB 6 et antérieur

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 38
    Points : 35
    Points
    35
    Par défaut Lancer des commandes dos à partir d'un fichier texte
    Bonjour,

    Je voudrais lancer des commandes dos lues séquentiellement dans un fichier texte. Je voudrais tester que la commande dos soit terminée avant de lancer la suivante.

    J'ai essayé le script de la FAQ qui attend que l'on ferme notepad pour continuer, mais quand je remplace "notepad" par une variable j'ai le message d'erreur: 'Type d'argument Byref incompatible'


    Voici le code:

    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
    Sub Main()
    Dim fic As String
    Dim xx
     
        fic = "c:\zzz.txt"
        If Dir(fic, vbHidden) <> "" Then
         Dim numfich
            Dim ligne As String
            numfich = FreeFile
     
            Open fic For Input As #numfich
            While Not EOF(numfich)
                Line Input #numfich, ligne
                prog = "command.com /c " & ligne
                xx = process(prog)
            Wend
            Close #numfich
     
        End If
     
    End Sub
     
     
    Function process(prog)
     
    Dim proc As PROCESS_INFORMATION
     
    On Error GoTo errortag
    proc.hProcess = -1
    proc.hThread = -1
    Call LancerProcess(prog, proc) 
    ' Dans le cript original c'est : Call LancerProcess("notepad", proc)
    Call AttendreFinProcess(proc)
    Call CloseHandle(proc.hProcess)
    Call CloseHandle(proc.hThread)
     
    Exit Function
     
    errortag:
    If proc.hProcess <> -1 Then CloseHandle proc.hProcess
    If proc.hThread <> -1 Then CloseHandle proc.hThread
    MsgBox Err.Number & " - " & Err.Description
     
    End Function

    Quelqu'un peut t'il m'aider ?

  2. #2
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Points : 24 327
    Points
    24 327
    Par défaut
    Et si, à la place de "notepad", tu mets une de tes commandes ("command.com /c [Ton_Exe.exe]"). Que se passe-t-il?

    Même question dans l'autre sens.
    Que se passe-t-il si tu mets "notepad" dans ta variable prog?
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2005
    Messages
    38
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 38
    Points : 35
    Points
    35
    Par défaut
    bonjour,

    En fait ça marche si je mets prog$ à la place de prog.

    Que signifie ce $ ?

  4. #4
    Membre éclairé Avatar de sozie9372
    Inscrit en
    Mai 2005
    Messages
    713
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Mai 2005
    Messages : 713
    Points : 724
    Points
    724
    Par défaut
    Ca signifie que ta variable est de type String. Tu aurais déclaré ta variable en Type String proprement (Dim prog As String) au départ t'aurais pas eu de problème !
    +++
    Ju
    "Il y a 3 personnes en ce monde sur qui tu peux compter : moi, le pape et le cavalier solitaire ! "
    Penser à svp

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

Discussions similaires

  1. [Débutant] [développement] Comment lancer des commandes dos à distance ?
    Par Tarmineldur dans le forum Développement Windows
    Réponses: 30
    Dernier message: 12/12/2012, 12h15
  2. [Débutant] Lancer des commandes DOS et fichiers.m
    Par membreComplexe12 dans le forum MATLAB
    Réponses: 3
    Dernier message: 24/02/2010, 14h07
  3. Réponses: 9
    Dernier message: 06/05/2009, 13h23
  4. executer des commandes DOS à partir un fichier *.bat
    Par younek dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 21/10/2007, 12h21
  5. Réponses: 7
    Dernier message: 06/01/2007, 20h16

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