Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

lancer programme

9 réponses
Avatar
Kic360
bonsoir

je recherche le code pour lancer une suite de 3 programmes avec un timer
entre chaque pour leur laisser le temps de s'ouvrir.

open "c:\program files\trucmuch.exe" ne fonctionne pas

une idée?
merci beaucoup

--
***
C'est parce que la vitesse de la lumière est plus rapide que celle du son,
que des gens paraissent brillants avant d'avoir l'air con !
***

9 réponses

Avatar
Jean-marc
Kic360 wrote:
bonsoir



Hello,

je recherche le code pour lancer une suite de 3 programmes avec un
timer entre chaque pour leur laisser le temps de s'ouvrir.

open "c:program filestrucmuch.exe" ne fonctionne pas

une idée?



Oui :-)

Consulter la FAQ du groupe qui indique divers moyen de faire ça,
à adapter à tes besoins:

http://faq.vb.free.fr/index.php?question=7
http://faq.vb.free.fr/index.php?question3
http://faq.vb.free.fr/index.php?question2

Pour faire une pause entre les lacements, tu peux utiliser ceci:
http://faq.vb.free.fr/index.php?question6

Ou bien utiliser un timer. On met alors le nom des exe dans un tableau
et on crée un timer qui se déclenche par exemple toutes les N secondes.
Dans le timer, on maintient une variable statique que l'on incrémentera
à chaque passage. une fois le dernier programme lancé, on disable le timer.

Ca donnerait un truc comme ça:
'
' Mettre sur la form un Timer (Timer1) et un
' bouton de commande (Command1)

Option Explicit

Const NBR_PROGS As Long = 3
Dim Tprogs(NBR_PROGS) As String

Private Sub Form_Load()

Tprogs(1) = "toto.exe"
Tprogs(2) = "titi.exe"
Tprogs(3) = "tutu.exe"
End Sub

Private Sub Command1_Click()
Timer1.Interval = 2000 ' 2 secondes
Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
Static n As Integer

n = n + 1
If n > NBR_PROGS Then
MsgBox "tous les programmes ont été lancés"
Timer1.Enabled = False
n = 0 ' Reset
Else
MsgBox "lance le programme : " & Tprogs(n)
' lancer ici le programme
End If

End Sub

Note: l'instruction Open ne fonctionne pas du tout comme tu crois.
Cf. http://msdn.microsoft.com/en-us/library/aa266177(VS.60).aspx

Tu peux consulter l'aide de VB ici:
http://msdn.microsoft.com/en-us/library/aa139596.aspx

D'une façon générale, la FAQ du groupe contient de nombreux
articles et exemples de code: http://faq.vb.free.fr/

Cordialement,

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Avatar
Kic360
ok! merci je vais essayer cela!
merci beaucoup et bonsoir

"Jean-marc" a écrit dans le message de news:
48b862c8$0$2864$
Kic360 wrote:
bonsoir



Hello,

je recherche le code pour lancer une suite de 3 programmes avec un
timer entre chaque pour leur laisser le temps de s'ouvrir.

open "c:program filestrucmuch.exe" ne fonctionne pas

une idée?



Oui :-)

Consulter la FAQ du groupe qui indique divers moyen de faire ça,
à adapter à tes besoins:

http://faq.vb.free.fr/index.php?question=7
http://faq.vb.free.fr/index.php?question3
http://faq.vb.free.fr/index.php?question2

Pour faire une pause entre les lacements, tu peux utiliser ceci:
http://faq.vb.free.fr/index.php?question6

Ou bien utiliser un timer. On met alors le nom des exe dans un tableau
et on crée un timer qui se déclenche par exemple toutes les N secondes.
Dans le timer, on maintient une variable statique que l'on incrémentera
à chaque passage. une fois le dernier programme lancé, on disable le
timer.

Ca donnerait un truc comme ça:
'
' Mettre sur la form un Timer (Timer1) et un
' bouton de commande (Command1)

Option Explicit

Const NBR_PROGS As Long = 3
Dim Tprogs(NBR_PROGS) As String

Private Sub Form_Load()

Tprogs(1) = "toto.exe"
Tprogs(2) = "titi.exe"
Tprogs(3) = "tutu.exe"
End Sub

Private Sub Command1_Click()
Timer1.Interval = 2000 ' 2 secondes
Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
Static n As Integer

n = n + 1
If n > NBR_PROGS Then
MsgBox "tous les programmes ont été lancés"
Timer1.Enabled = False
n = 0 ' Reset
Else
MsgBox "lance le programme : " & Tprogs(n)
' lancer ici le programme
End If

End Sub

Note: l'instruction Open ne fonctionne pas du tout comme tu crois.
Cf. http://msdn.microsoft.com/en-us/library/aa266177(VS.60).aspx

Tu peux consulter l'aide de VB ici:
http://msdn.microsoft.com/en-us/library/aa139596.aspx

D'une façon générale, la FAQ du groupe contient de nombreux
articles et exemples de code: http://faq.vb.free.fr/

Cordialement,

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;








Avatar
Kic360
bonjour
est-ce que je peux faire cela:
Tprogs(1) = "C:Program FilesNaturalPointTrackIR4TrackIR.exe"
car il ne se lance pas
merci

"Jean-marc" a écrit dans le message de news:
48b862c8$0$2864$
Kic360 wrote:
bonsoir



Hello,

je recherche le code pour lancer une suite de 3 programmes avec un
timer entre chaque pour leur laisser le temps de s'ouvrir.

open "c:program filestrucmuch.exe" ne fonctionne pas

une idée?



Oui :-)

Consulter la FAQ du groupe qui indique divers moyen de faire ça,
à adapter à tes besoins:

http://faq.vb.free.fr/index.php?question=7
http://faq.vb.free.fr/index.php?question3
http://faq.vb.free.fr/index.php?question2

Pour faire une pause entre les lacements, tu peux utiliser ceci:
http://faq.vb.free.fr/index.php?question6

Ou bien utiliser un timer. On met alors le nom des exe dans un tableau
et on crée un timer qui se déclenche par exemple toutes les N secondes.
Dans le timer, on maintient une variable statique que l'on incrémentera
à chaque passage. une fois le dernier programme lancé, on disable le
timer.

Ca donnerait un truc comme ça:
'
' Mettre sur la form un Timer (Timer1) et un
' bouton de commande (Command1)

Option Explicit

Const NBR_PROGS As Long = 3
Dim Tprogs(NBR_PROGS) As String

Private Sub Form_Load()

Tprogs(1) = "toto.exe"
Tprogs(2) = "titi.exe"
Tprogs(3) = "tutu.exe"
End Sub

Private Sub Command1_Click()
Timer1.Interval = 2000 ' 2 secondes
Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
Static n As Integer

n = n + 1
If n > NBR_PROGS Then
MsgBox "tous les programmes ont été lancés"
Timer1.Enabled = False
n = 0 ' Reset
Else
MsgBox "lance le programme : " & Tprogs(n)
' lancer ici le programme
End If

End Sub

Note: l'instruction Open ne fonctionne pas du tout comme tu crois.
Cf. http://msdn.microsoft.com/en-us/library/aa266177(VS.60).aspx

Tu peux consulter l'aide de VB ici:
http://msdn.microsoft.com/en-us/library/aa139596.aspx

D'une façon générale, la FAQ du groupe contient de nombreux
articles et exemples de code: http://faq.vb.free.fr/

Cordialement,

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;








Avatar
LE TROLL
Bonjour,

Faut faire ça par exemple :

Sub Form_Load()
Dim x
Dim Tprogs(1) As String
x = Shell("trucmuch.exe", 1)
' ou
Tprogs(1) = "trucmuch.exe"
x = Shell(Tprogs(1), 1)
End Sub


Et ça :

open "c:program filestrucmuch.exe" ne fonctionne pas

Tu veux faire quoi en faisant ainsi, car ça ne va pas le lancer mais lui
ouvrir le ventre ???

Et puis si t'as du mal avec le Timer, tu peux faire autre chose, mais je
vais me faire fusiller, ce n'est pas académique, ceci :

sub ta_procedure()
Dim Tprog As String
dim i as long
dim j as long
dim k as long
Dim x
Tprogs = "trucmuch 1.exe"
gosub lance
Tprogs = "trucmuch 2.exe"
gosub lance
Tprogs = "trucmuch 3.exe"
gosub lance
exit sub
lance:
x = Shell(Tprog, 1)
for i = 1 to 10000
for j = 1 to 10000
for k = 1 to 10000
next k
next j
next i
return
end sub


---
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Kic360" a écrit dans le message de news:
48b92758$0$9851$
| bonjour
| est-ce que je peux faire cela:
| Tprogs(1) = "C:Program FilesNaturalPointTrackIR4TrackIR.exe"
| car il ne se lance pas
| merci
|
| "Jean-marc" a écrit dans le message de news:
| 48b862c8$0$2864$
| > Kic360 wrote:
| >> bonsoir
| >
| > Hello,
| >
| >> je recherche le code pour lancer une suite de 3 programmes avec un
| >> timer entre chaque pour leur laisser le temps de s'ouvrir.
| >>
| >> open "c:program filestrucmuch.exe" ne fonctionne pas
| >>
| >> une idée?
| >
| > Oui :-)
| >
| > Consulter la FAQ du groupe qui indique divers moyen de faire ça,
| > à adapter à tes besoins:
| >
| > http://faq.vb.free.fr/index.php?question=7
| > http://faq.vb.free.fr/index.php?question3
| > http://faq.vb.free.fr/index.php?question2
| >
| > Pour faire une pause entre les lacements, tu peux utiliser ceci:
| > http://faq.vb.free.fr/index.php?question6
| >
| > Ou bien utiliser un timer. On met alors le nom des exe dans un tableau
| > et on crée un timer qui se déclenche par exemple toutes les N secondes.
| > Dans le timer, on maintient une variable statique que l'on incrémentera
| > à chaque passage. une fois le dernier programme lancé, on disable le
| > timer.
| >
| > Ca donnerait un truc comme ça:
| > '
| > ' Mettre sur la form un Timer (Timer1) et un
| > ' bouton de commande (Command1)
| >
| > Option Explicit
| >
| > Const NBR_PROGS As Long = 3
| > Dim Tprogs(NBR_PROGS) As String
| >
| > Private Sub Form_Load()
| >
| > Tprogs(1) = "toto.exe"
| > Tprogs(2) = "titi.exe"
| > Tprogs(3) = "tutu.exe"
| > End Sub
| >
| > Private Sub Command1_Click()
| > Timer1.Interval = 2000 ' 2 secondes
| > Timer1.Enabled = True
| > End Sub
| >
| > Private Sub Timer1_Timer()
| > Static n As Integer
| >
| > n = n + 1
| > If n > NBR_PROGS Then
| > MsgBox "tous les programmes ont été lancés"
| > Timer1.Enabled = False
| > n = 0 ' Reset
| > Else
| > MsgBox "lance le programme : " & Tprogs(n)
| > ' lancer ici le programme
| > End If
| >
| > End Sub
| >
| > Note: l'instruction Open ne fonctionne pas du tout comme tu crois.
| > Cf. http://msdn.microsoft.com/en-us/library/aa266177(VS.60).aspx
| >
| > Tu peux consulter l'aide de VB ici:
| > http://msdn.microsoft.com/en-us/library/aa139596.aspx
| >
| > D'une façon générale, la FAQ du groupe contient de nombreux
| > articles et exemples de code: http://faq.vb.free.fr/
| >
| > Cordialement,
| >
| > --
| > Jean-marc Noury (jean_marc_n2)
| > Microsoft MVP - Visual Basic
| > FAQ VB: http://faq.vb.free.fr/
| > mailto: remove '_no_spam_' ;
| >
| >
| >
| >
| >
| >
|
|
Avatar
Jean-marc
LE TROLL wrote:
Bonjour,



Et puis si t'as du mal avec le Timer, tu peux faire autre chose,
mais je vais me faire fusiller, ce n'est pas académique, ceci :



<snip le code immonde>

ALors la, ce n'est même pas que ce n'est pas "académique", c'est
juste carrément n'importe quoi :o)))

Et en plus d'être immonde, ça ne fonctionne pas:
Faire une pause en faisant des boucles vides, ça ne marche pas car:
- En fonction de la machine, les résultats sont évidemment différents
- Mieux encore: avec des options de compilation correctes, le compilateur
va supprimer ce code car il se rendra compte que les boucles ne servent
à rien (et y mettre une affectation de variable bidon n'y changera rien).

Bref, il ne faut pas faire ça, académiquement ou non :-))))))))

PS: Comme je suis un homme courtois, je ne dirais pas ici ce que je
pense de l'utilisation "merveilleuse" du Gosub qui nous a été présenté
ici...

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Avatar
LE TROLL
LOL, oui, ben si la boucle elle a faim, tu lui mets un petit :

k2Úy(date)

Désolé, mea culpa, c'était juste pour le dépanner si jamais il avait un
problème avec le Timer, qui la première fois n'est pas évident à bien
comprendre...

On peut aussi utiliser sleep, ce serait mieux (académique)...

Mais... il a quoi mon gosub, es-tu anti-gosub, pourquoi donc ?

--
Merci beaucoup, au revoir et à bientôt :o)
------
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------
"Jean-marc" a écrit dans le message de news:
48b95073$0$2856$
| LE TROLL wrote:
| > Bonjour,
|
| > Et puis si t'as du mal avec le Timer, tu peux faire autre chose,
| > mais je vais me faire fusiller, ce n'est pas académique, ceci :
|
| <snip le code immonde>
|
| ALors la, ce n'est même pas que ce n'est pas "académique", c'est
| juste carrément n'importe quoi :o)))
|
| Et en plus d'être immonde, ça ne fonctionne pas:
| Faire une pause en faisant des boucles vides, ça ne marche pas car:
| - En fonction de la machine, les résultats sont évidemment différents
| - Mieux encore: avec des options de compilation correctes, le compilateur
| va supprimer ce code car il se rendra compte que les boucles ne servent
| à rien (et y mettre une affectation de variable bidon n'y changera rien).
|
| Bref, il ne faut pas faire ça, académiquement ou non :-))))))))
|
| PS: Comme je suis un homme courtois, je ne dirais pas ici ce que je
| pense de l'utilisation "merveilleuse" du Gosub qui nous a été présenté
| ici...
|
| --
| Jean-marc Noury (jean_marc_n2)
| Microsoft MVP - Visual Basic
| FAQ VB: http://faq.vb.free.fr/
| mailto: remove '_no_spam_' ;
|
|
|
|
Avatar
Jean-marc
LE TROLL wrote:

Mais... il a quoi mon gosub, es-tu anti-gosub, pourquoi donc ?



Je ne suis pas anti-gosub, ni même anti-goto. Je ne suis "anti" rien du
tout.

Le fait est que l'instruction Gosub était une excellente instruction en
son temps. Elle permettait de faire du pseudo-structuré, avec les moyens
du bord.

Mais l'utiliser aujourd'hui, c'est comme si un architecte me disait
aujourd'hui (2008), pour la construction d'une maison neuve :
"Je n'ai pas mis l'eau courante sur l'évier, j'ai mis un puits.
Je n'ai pas non plus mis de toilettes, j'ai mis une cabane au fond
du jardin".

Je ne suis pas "anti-puits", ni "anti-cabanes-au-fond-jardin", mais
tu admettras qu'un architecte qui proposerait cela aujourd'hui ne serait
pas crédible. Ou si tu veux, on dirait de lui qu'il n'est pas au courant
de "l'état de l'art". Et peu de promoteurs 'académiques' seraient d'accord
pour confier des projets à cet architecte. Pourquoi ? Parce que un puits
c'est
très bien, mais l'eau courante sur l'évier, c'est fiable, pratique, etc. A
tel
point que 99,999% des logements sont équipés de cette facilité. Et que à
part
pour le folklore, ou bien si il n'y a pas d'alternative (pas de réseau d'eau
par
exemple), on préfère l'eau courante au puits.

Gosub = Puits
Procédures et Fonctions = Eau courante

Et bien utiliser Gosub aujourd'hui, c'est mal, parce que ça revient à
utiliser une instruction obsolète depuis plus de 20 ans. Elle a été
remplacée par Sub et Function, qui offrent plus de souplesse, de maitrise du
code, etc.

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Avatar
Kic360
bonjour

j'ai voulu simplifier le système pas de feuille, ni de boutons!
est-ce que je peux faire cela?

Private Sub Form_Load()
Shell "C:Program FilesNaturalPointTrackIR4TrackIR.exe" 'réduire la
fenetre
Timer1.Interval = 3000 ' 3 secondes
Timer1.Enabled = True
Shell "C:Program FilesTeamspeak2_RC2TeamSpeak.exe" 'reduire la
fenetre
Timer2.Interval = 3000 ' 3 secondes
Timer2.Enabled = True
Shell "C:Program FilesUbisoftEagle DynamicsLock Onlockon.exe"
End Sub

comment réduire les fenêtres des 2 premiers logiciels?

"Jean-marc" a écrit dans le message de news:
48b862c8$0$2864$
Kic360 wrote:
bonsoir



Hello,

je recherche le code pour lancer une suite de 3 programmes avec un
timer entre chaque pour leur laisser le temps de s'ouvrir.

open "c:program filestrucmuch.exe" ne fonctionne pas

une idée?



Oui :-)

Consulter la FAQ du groupe qui indique divers moyen de faire ça,
à adapter à tes besoins:

http://faq.vb.free.fr/index.php?question=7
http://faq.vb.free.fr/index.php?question3
http://faq.vb.free.fr/index.php?question2

Pour faire une pause entre les lacements, tu peux utiliser ceci:
http://faq.vb.free.fr/index.php?question6

Ou bien utiliser un timer. On met alors le nom des exe dans un tableau
et on crée un timer qui se déclenche par exemple toutes les N secondes.
Dans le timer, on maintient une variable statique que l'on incrémentera
à chaque passage. une fois le dernier programme lancé, on disable le
timer.

Ca donnerait un truc comme ça:
'
' Mettre sur la form un Timer (Timer1) et un
' bouton de commande (Command1)

Option Explicit

Const NBR_PROGS As Long = 3
Dim Tprogs(NBR_PROGS) As String

Private Sub Form_Load()

Tprogs(1) = "toto.exe"
Tprogs(2) = "titi.exe"
Tprogs(3) = "tutu.exe"
End Sub

Private Sub Command1_Click()
Timer1.Interval = 2000 ' 2 secondes
Timer1.Enabled = True
End Sub

Private Sub Timer1_Timer()
Static n As Integer

n = n + 1
If n > NBR_PROGS Then
MsgBox "tous les programmes ont été lancés"
Timer1.Enabled = False
n = 0 ' Reset
Else
MsgBox "lance le programme : " & Tprogs(n)
' lancer ici le programme
End If

End Sub

Note: l'instruction Open ne fonctionne pas du tout comme tu crois.
Cf. http://msdn.microsoft.com/en-us/library/aa266177(VS.60).aspx

Tu peux consulter l'aide de VB ici:
http://msdn.microsoft.com/en-us/library/aa139596.aspx

D'une façon générale, la FAQ du groupe contient de nombreux
articles et exemples de code: http://faq.vb.free.fr/

Cordialement,

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;








Avatar
Jean-marc
Kic360 wrote:
bonjour



Hello,

j'ai voulu simplifier le système pas de feuille, ni de boutons!
est-ce que je peux faire cela?



Oui.

comment réduire les fenêtres des 2 premiers logiciels?



En Utilisant ShellExecute et en lisant la documentation
gracieusement mise à ta disposition par Miscrosoft.

http://faq.vb.free.fr/index.php?question=7

Indice: c'est le dernier paramère de la fonction ShellExecute.

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;