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 :

Probleme avec le shell


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 24
    Par défaut Probleme avec le shell
    Bonjour,

    Alors voila, mon application est un petit programme qui crée et compresse des fichiers via winzip.

    Pour cela l'appli je fais un appel au shell :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    res = Shell(commande_line, 1)
    (command_line contient les instructions pour lancer winzip avec le nom des fichiers etc...)

    Alors cela fonctionne tres bien depuis de nombreuses années sur des pcs pas trop performants mais depuis que le parc PCs a ete mis a jour des erreurs se produisent .... il semblerait que cela soit du a la vitesse des machines...

    Ce qu'il faudrait c'est que j'arrive a detecter a quel moment la commande shell a fini de s'executer pour pouvoir effectuer la suite de mon code.

    Y a t il moyen de faire cela? par exemple en detectant la fermeture de la fenetre DOS ou autre?

    Merci d'avance pour votre aide.

    rq: ce que j'ai trouve comme explication sur le shell etait tres bref et si ce sujet a deja ete evoque sur le forum je m'en excuse, mais il y a bcp de sujets....

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    tu peu essayer :

    Comment exécuter un programme externe ?

    c'est du VBScript mais qui doit "tourner" en VB6..

  3. #3
    Membre averti
    Inscrit en
    Octobre 2005
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 24
    Par défaut
    Voici ce que j'ai trouve, c'est un peu complique mais ca a resolu mon problème.

    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
     
    Private Type STARTUPINFO
          cb As Long
          lpReserved As String
          lpDesktop As String
          lpTitle As String
          dwX As Long
          dwY As Long
          dwXSize As Long
          dwYSize As Long
          dwXCountChars As Long
          dwYCountChars As Long
          dwFillAttribute As Long
          dwFlags As Long
          wShowWindow As Integer
          cbReserved2 As Integer
          lpReserved2 As Long
          hStdInput As Long
          hStdOutput As Long
          hStdError As Long
       End Type
     
       Private Type PROCESS_INFORMATION
          hProcess As Long
          hThread As Long
          dwProcessID As Long
          dwThreadID As Long
       End Type
     
       Private Declare Function WaitForSingleObject Lib "kernel32" (ByVal _
          hHandle As Long, ByVal dwMilliseconds As Long) As Long
     
       Private Declare Function CreateProcessA Lib "kernel32" (ByVal _
          lpApplicationName As String, ByVal lpCommandLine As String, ByVal _
          lpProcessAttributes As Long, ByVal lpThreadAttributes As Long, _
          ByVal bInheritHandles As Long, ByVal dwCreationFlags As Long, _
          ByVal lpEnvironment As Long, ByVal lpCurrentDirectory As String, _
          lpStartupInfo As STARTUPINFO, lpProcessInformation As _
          PROCESS_INFORMATION) As Long
     
       Private Declare Function CloseHandle Lib "kernel32" _
          (ByVal hObject As Long) As Long
     
       Private Declare Function GetExitCodeProcess Lib "kernel32" _
          (ByVal hProcess As Long, lpExitCode As Long) As Long
     
       Private Const NORMAL_PRIORITY_CLASS = &H20&
       Private Const INFINITE = -1&
     
       Public Function ExecCmd(cmdline$)
          Dim proc As PROCESS_INFORMATION
          Dim start As STARTUPINFO
          Dim ret_test As Variant
     
     
          ' Initialize the STARTUPINFO structure:
          start.cb = Len(start)
     
          ' Start the shelled application:
          ret_test = CreateProcessA(vbNullString, cmdline$, 0&, 0&, 1&, _
             NORMAL_PRIORITY_CLASS, 0&, vbNullString, start, proc)
     
          ' Wait for the shelled application to finish:
             ret_test = WaitForSingleObject(proc.hProcess, INFINITE)
             Call GetExitCodeProcess(proc.hProcess, ret_test)
             Call CloseHandle(proc.hThread)
             Call CloseHandle(proc.hProcess)
             ExecCmd = ret_test
       End Function
     
       Sub Command1_Click()
          Dim res As Long
          Dim commande_line As String
     
          commande_line = "C:\Program Files\Winzip\Wzzip.exe C:\PackageEudorV21\data\LOCAL2EUDORARCHIVE\TU_PUBPDF_IL7606423ESC_1_20070726154038.zip  C:\PACKAG~1\data\PUBPOU~1\IL7606423ESC.jpg C:\PACKAG~1\data\PUBPOU~1\IL7606423ESC_002.pdf C:\PackageEudorV21\data\LOCAL2EUDORARCHIVE\U_PUBPDF_IL7606423ESC_1_20070726154038.xml"
     
          res = ExecCmd(commande_line)
          MsgBox "Process Finished, Exit Code " & res
       End Sub

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

Discussions similaires

  1. Probleme avec WScript.Shell"
    Par dedein84 dans le forum ASP
    Réponses: 3
    Dernier message: 09/06/2009, 10h24
  2. probleme avec du shell et la commande sed
    Par cobra85 dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 10/04/2009, 16h31
  3. Probleme avec un shell script
    Par philippe57460 dans le forum Shell et commandes GNU
    Réponses: 1
    Dernier message: 07/07/2008, 11h38
  4. [VB6] Probleme avec commande SHELL
    Par Oseval dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 04/08/2006, 17h13
  5. [VBscript] probleme avec shell.exec
    Par eown dans le forum Windows
    Réponses: 1
    Dernier message: 23/04/2006, 09h24

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