Passer des arguments avec SHELL

[Résolu]
Signaler
Messages postés
13
Date d'inscription
jeudi 21 février 2008
Statut
Membre
Dernière intervention
1 août 2008
-
Messages postés
13
Date d'inscription
jeudi 21 février 2008
Statut
Membre
Dernière intervention
1 août 2008
-
Bonjour a tous,
je suis débutant en VB et j'aurai besoin de votre aide car je n'ai pas trouvé de solutions.
Voila je souhaite ouvrir un .exe en cliquant sur un bouton. Ce .exe s'ouvre dans une fenetre ms-dos que s'il recoit 2 arguments. Le premier étant le numero de port com utilisé et le second le path d'un fichier.
Sous l'invite de commande sa donne ça:
c:\documents and........\hc08sprg.exe 1 c:\documents and......\project.abs.s19
Je pensait ouvrir l'invite de commande et d'y envoyer automatiquement cette commande mais ctrl+V ne fonctionne pas dans l'invite, auriez vous une solution?
Ou alors est-il possible d'envoyer ces arguments avec un shell ou un shellExecute?

Merci d'avance.

12 réponses

Messages postés
918
Date d'inscription
vendredi 3 août 2007
Statut
Membre
Dernière intervention
27 octobre 2008
10
Un truc du genre de ceci :
shell("""c:\documents and........\hc08sprg.exe"" 1 ""c:\documents and......\project.abs.s19""")
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46



Messages postés
13
Date d'inscription
jeudi 21 février 2008
Statut
Membre
Dernière intervention
1 août 2008

Merci de ta rapidité, ca fonctionne très bien!!
Messages postés
13
Date d'inscription
jeudi 21 février 2008
Statut
Membre
Dernière intervention
1 août 2008

J'aurai une autre question, en fait je voudrai que mon appli puisse s'executer sur d'autres postes. Ce shell execute un exe qui se trouve dans le un dossier du repertoire de mon appli.
voici mon instruction:
sprg = shell ("""c:\documents and settings\administrateur\bureau\ihm\soft freescale\hc08sprg.exe"" 1 ""c:\documents and settings\administrateur\bureau\ihm\sources\bin\project.abs.s19""", 1)

Mon appli vb se trouve dans le dossier IHM, je voudrai m'affranchir du chemin d'acces precedent le dossier IHM.J'ai donc cherché et j'ai trouvé l'instruction CurDir.
L'instruction suivante fonctionne correctement:
sprg = shell (CurDiv() & "\soft freescale\hc08sprg.exe", 1)

Cependant je n'arrive plus à passer les paramètres, j'aimerai egalement utiliser CurDiv pour le chemin d'acces du 2eme parametre, est-ce possible? Auriez-vous une solution?

Merci d'avance.
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
c'est la réponse de Kristof_Koder qu'il faudrait valider

utilise app.path plutôt que curdir
tu n'as mis qu'un seul chemin donc forcément...

sprg = shell (Chr$(34) & App.Path & "\soft freescale\hc08sprg.exe"" 1 " & Chr$(34) & App.Path & "\sources\bin\project.abs.s19""", 1)
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
Messages postés
13
Date d'inscription
jeudi 21 février 2008
Statut
Membre
Dernière intervention
1 août 2008

J'ai essayé, sa ne fonctionne pas. L'exe s'ouvre mais se referme tout de suite, ce qui signifie qu'il y a un probleme de parametre.
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
où se trouve ton appli, dans \ihm ? \sources? \bin ? \soft freescale ?

de plus justement "\sources\bin", ne serais-tu pas en VB.NET plutôt qu'en VB6 ?....

<li> Vous êtes ici : [infomsg.aspx Thèmes] / [infomsgf_VISUAL-BASIC_1.aspx Visual Basic 6] / [infomsgt_DIVERS_220.aspx Divers] / [infomsgt_GENERAL_222.aspx General] / Passer des arguments avec SHELL</li>
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
Messages postés
13
Date d'inscription
jeudi 21 février 2008
Statut
Membre
Dernière intervention
1 août 2008

Voila mon appli, qui est bien en vb6, se trouve dans:
c:\documents and ....\bureau\ihm

Le chemin du .exe que je souhaite executer avec le shell est:
c:\documents and ....\bureau\ihm\soft freescale\hc08sprg.exe

Ce .exe à besoin d'un fichier pour démarrer, dont le chemin est:
c:\documents and ....\bureau\ihm\sources\bin\project.abs.s19
Messages postés
13
Date d'inscription
jeudi 21 février 2008
Statut
Membre
Dernière intervention
1 août 2008

Petit up pour mon probleme.
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
est-ce qu'en tapant ceci :

debug.print """c:\documents and settings\administrateur\bureau\ihm\soft
freescale\hc08sprg.exe"" 1 ""c:\documents and
settings\administrateur\bureau\ihm\sources\bin\project.abs.s19"""

debug.print Chr$(34) &
App.Path & "\soft freescale\hc08sprg.exe"" 1 " & Chr$(34) &
App.Path & "\sources\bin\project.abs.s19"""

depuis ton poste, il y a une différence?
(résultat à lire dans le fenêtre d'execution, Ctrl+G)
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp  
Messages postés
13
Date d'inscription
jeudi 21 février 2008
Statut
Membre
Dernière intervention
1 août 2008

J'obtiens exactement la même chose en faisant les deux debug.print:

"c:\documents and settings\administrateur\bureau\ihm\soft freescale\hc08sprg.exe" 1 "c:\documents and settings\administrateur\bureau\ihm\sources\bin\project.abs.s19"

Je ne comprend donc pas pourquoi sa ne fonctionne pas lorsque je fais un shell??
Messages postés
13
Date d'inscription
jeudi 21 février 2008
Statut
Membre
Dernière intervention
1 août 2008

J'ai essayé plusieurs combinaisons, rien ne fonctionne, pourtant lorsque je debug sa me met la bonne syntaxe.
Personne ne peut m'aider?