Passage délicat "select case" et contrôles processus

Billybobbonnet Messages postés 148 Date d'inscription lundi 12 février 2007 Statut Membre Dernière intervention 9 novembre 2013 - 2 mars 2007 à 14:49
troxsa Messages postés 553 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 2 octobre 2016 - 3 mars 2007 à 09:13
Bonjour à tous,

Moi je suis débutant, mais ce code ne me semble pas être du code de débutant, la preuve en est que je suis largué. Voilà le problème, je veux lancer plusieurs scripts à la suite et lancer le suivant quand le précédent se termine. Pour ça , j'ai trouvé un bout de code qui utilise le wmi et qui me refile la liste des processus lancés. Je prends donc cette liste et en fonction d'elle, je coordonne le lancement de mes scripts.

Vu que les opérations a réaliser sont nombreuses et très conditionnées, j'ai utilisé un select case. Alors voilà le bout de code mais je précise quelques petites choses avant:
- etape = 1 (déclaré dans le sub d'avant)
- Pour la variable continue voir à la fin- Une petite question: If element.Name "VirtualDub.exe" Null peut-il vouloir dire "si je ne trouve pas virtualdub.exe dans la liste des processus?"
- Une autre question: Là en principe, le timer fait qu'il y a une boucle jusqu'à ce que l'étape 5 soit atteinte, et que continue = 0, je me trompe?

Le code

Private Sub Timer()
  Timer1.Interval = 1000
'Attendre la fin de VirtualDub
    Set liste = GetObject("winmgmts:").InstancesOf("Win32_Process") 'Récupération des processus en cours d'exécution
   
    For Each element In liste
       
        Select Case etape
        Case 1 'j'attends que virtualdub se lance
            If element.Name = "VirtualDub.exe" Then
                etape = 2
            End If

        Case 2 'virtualdub lancé, j'attends qu'il s'arrête            If element.Name "VirtualDub.exe" Null Then
                etape = 3
                Shape2.Visible = True
            End If

        Case 3 'Virtualdub arrété, on passe à la suite
              Call execution
              MsgBox "QT", vbOKOnly
              etape = 4
              Shape3.Visible = True

        Case 4 ' j'attends que QTscript s'arrête            If element.Name "QTscript.exe" Null Then
              etape = 5
            End If

        Case 5 'QTscript terminé, on passe à la suite (continue = 0 dc la boucle du timer s'arrête)
                Call DVCscript
                Shape4.Visible = True
                Patientez.Caption = "Patientez"
                Patientez.Enabled = False
                continue = 0
 
  End Select
   
    If continue = 1 Then
        Timer1.Interval = 1000
    Else:
  
        Timer1.Interval = 0
    End If
End Sub

Pouvez vous m'aider à purger ce code des éventuelles erreurs svp? Un ptit coup de main svp?

8 réponses

Billybobbonnet Messages postés 148 Date d'inscription lundi 12 février 2007 Statut Membre Dernière intervention 9 novembre 2013
2 mars 2007 à 15:35
Deux problèmes identifiés:

1)j'ai oublié next après End select, ça arrive ;)

2) Le deuxième est plus sérieux, lorsque je lance l'execution pas à pas, on dirait que même quand virtualdub tourne, il n'est pas détecté comme élément de la liste. En tout cas, je déduis ça du fait que je reste bloqué à case1.

A titre d'info et pour rendre à césar ce qui est à césar, j'ai chopé cette ligne là http://www.vbfrance.com/code.aspx?ID=1311 . A la ligne 285. J'ai bien entendu déclaré les variables nécessaires.
0
troxsa Messages postés 553 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 2 octobre 2016 1
2 mars 2007 à 16:12
Bonjour,

Tu codes bien sous vb6 ?
le code qui est donné c'est du VB6 ...
Tu es dans la section Thèmes / VB.NET et VB 2005 / Divers / General / Passage délicat "select case" et contrôles processus

Si tu fais bien du VB6 je te conseil d'aller dans le forum aproprié ...
Si tu fais du vb.net (2005) tu es au bonne endroit, mais avant de t'aider j'aimerais que tu nous dises tu code en quelle version ?

Cordialement

http://www.troxsa.info/
Le site qui ne parle qu'un seul langage, visual basic 2005
0
Billybobbonnet Messages postés 148 Date d'inscription lundi 12 février 2007 Statut Membre Dernière intervention 9 novembre 2013
2 mars 2007 à 16:17
Désolé, je n'ai pas fait attention, je pensais être dans la section VB6! Je reposte le même sujet dans le forum VB6 et je vous fais toutes mes excuses!
0
troxsa Messages postés 553 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 2 octobre 2016 1
2 mars 2007 à 16:25
C'est pas grave c'est des choses qui arrive :)
bonne continuation ....

http://www.troxsa.info/
Le site qui ne parle qu'un seul langage, visual basic 2005
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
2 mars 2007 à 21:24
Rappel pour TroXsA, pour VB6 ou VB.Net et VB 2005, le forum est exactement le même, ça ne sert à rien de dire d'aller sur le bon forum, il y est déjà.

C'est juste la rubrique qui n'est pas bonne.

Faites un minimum attention quand même aux réponses que vous donnez.

Et puisque la question a été reposée dans la bonne rubrique, Messieurs les admins, ce post peut etre supprimé

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
troxsa Messages postés 553 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 2 octobre 2016 1
2 mars 2007 à 22:27
les methodes ne sont pas les memes
j'arrive a lire du VB6 mais pas a programmer dans ce language
2003 pour moi est complement different de VB6 il y a cert beaucoup de similitude sur les procedures banale ...
tendi que 2005 est tres proche de 2003 mais c'est encore une autre façon de programmer

enfin bon c'est juste mon avis
pour moi une section (rubrique) d'un forum doit respecter son contenue ou son label !
je me trouve actuement dans section "Thèmes / VB.NET et VB 2005"
j'ai simplement dit qu'il ce trouvais pas dans la bonne "section" et non dans le mauvais forum !

Le forum est composé de section qui sont comportés elles memes de rubriques non ?

http://www.troxsa.info/
Le site qui ne parle qu'un seul langage, visual basic 2005
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
2 mars 2007 à 22:47
Je suis d'accord avec toi, il faut poster dans la bonne rubrique. D'ailleurs c'est un des points du règlement.

"...j'ai simplement dit qu'il ce trouvais pas dans la bonne "section" et non dans le mauvais forum !..." Si, enfin indirectement, tu as dis exactement "...Si tu fais bien du VB6 je te conseil d'aller dans le forum aproprié ..."

Enfin bon, ya pas matière à batailler. Ca ne servirait à rien et ça ne va pas faire avancer les choses. C'était juste un coup de gueule de ma part, car ce type réponses légèrement érronée renvient de plus en plus souvent. Ainsi que le type de réponse "Ici tu es sur le forum untel" quand la question est en fait posée dans le bar, donc sur l'ensemble des forums de CodeS-SourceS

Le sujet est clos, pour moi c'est le we, je serais de retour Lundi seulement.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
0
troxsa Messages postés 553 Date d'inscription jeudi 28 novembre 2002 Statut Membre Dernière intervention 2 octobre 2016 1
3 mars 2007 à 09:13
:) Bon week
(pas de pb j'ai dit simplement mon ressenti)

Clos pour moi aussi

http://www.troxsa.info/
Le site qui ne parle qu'un seul langage, visual basic 2005
0
Rejoignez-nous