OVH Cloud OVH Cloud

Arguments de ligne de commande

9 réponses
Avatar
Etienne REMOND
Bonjour

je développe une "application windows" sous vb.net. je suppose que ça va
produire un .exe. je souhaite appeler ce .exe en ligne de commande avec
des arguments. j'aimerais savoir comment récupérer les arguments de la
ligne de commande.

si quelqu'un sait, merci d'avance




Etienne

9 réponses

Avatar
AlexC
Pour cela il te faut creer une Sub Main de cette manière :

Public Shared Sub Main ( Byval Args() as string)
(--- Code ---)
End Sub

chaques éléments du tableau args représentera un des arguments passés en
ligne de commande séparés par un espace.

Ex:

MonAppli.exe -s toto.txt -f 1

Ton tableau se composera de cette amnière :
args(0) = "-s"
args(1)="toto.txt"
args(2)="f"
agrs(3)="1"


"Etienne REMOND" a écrit dans le message de news:

Bonjour

je développe une "application windows" sous vb.net. je suppose que ça va
produire un .exe. je souhaite appeler ce .exe en ligne de commande avec
des arguments. j'aimerais savoir comment récupérer les arguments de la
ligne de commande.

si quelqu'un sait, merci d'avance




Etienne


Avatar
Etienne REMOND
Merci beaucoup.

Autre question si je peux abuser:
j'ai récupéré une classe d'un projet vb et j'ai des déclarations en
"Currency" mais vb.net n'a pas l'air d'aimer ça. Pour l'instant j'ai
remplacé par des décimal mais je ne sais pas si c'est vraiment pareil.
quel est l'équivalent des "currency" sous .net ?

merci encore



Etienne




AlexC wrote:

Pour cela il te faut creer une Sub Main de cette manière :

Public Shared Sub Main ( Byval Args() as string)
(--- Code ---)
End Sub

chaques éléments du tableau args représentera un des arguments passés en
ligne de commande séparés par un espace.

Ex:

MonAppli.exe -s toto.txt -f 1

Ton tableau se composera de cette amnière :
args(0) = "-s"
args(1)="toto.txt"
args(2)="f"
agrs(3)="1"


"Etienne REMOND" a écrit dans le message de news:


Bonjour

je développe une "application windows" sous vb.net. je suppose que ça va
produire un .exe. je souhaite appeler ce .exe en ligne de commande avec
des arguments. j'aimerais savoir comment récupérer les arguments de la
ligne de commande.

si quelqu'un sait, merci d'avance




Etienne







Avatar
Pierre Alexis [MVP]
Salut Etienne,

Tu as écrit :

Autre question si je peux abuser:
j'ai récupéré une classe d'un projet vb et j'ai des déclarations en
"Currency" mais vb.net n'a pas l'air d'aimer ça. Pour l'instant j'ai
remplacé par des décimal mais je ne sais pas si c'est vraiment pareil.
quel est l'équivalent des "currency" sous .net ?



Oui c'est Decimal.

--
Pierre ALEXIS - MVP Visual Basic Classique
Courriel & messenger :
FAQ Visual Basic : http://faq.vb.free.fr/
Avatar
Etienne REMOND
ok. merci beaucoup ^^


Etienne


Pierre Alexis [MVP] wrote:

Salut Etienne,

Tu as écrit :


Autre question si je peux abuser:
j'ai récupéré une classe d'un projet vb et j'ai des déclarations en
"Currency" mais vb.net n'a pas l'air d'aimer ça. Pour l'instant j'ai
remplacé par des décimal mais je ne sais pas si c'est vraiment pareil.
quel est l'équivalent des "currency" sous .net ?




Oui c'est Decimal.



Avatar
Claude Fortier
Bonjour,

J'ai essayé ce que vous avez indiqué sauf que maintenant ma "Form1" ne
s'affiche plus. La procédure main indiqué ci-bas prend le control de mon
formulaire.

Bref, comment passer des arguments dans une ligne de commande pour une
application qui ne possède qu'un "windows form"?

Merci beaucoup,

Claude Fortier

"AlexC" wrote:

Pour cela il te faut creer une Sub Main de cette manière :

Public Shared Sub Main ( Byval Args() as string)
(--- Code ---)
End Sub

chaques éléments du tableau args représentera un des arguments passés en
ligne de commande séparés par un espace.

Ex:

MonAppli.exe -s toto.txt -f 1

Ton tableau se composera de cette amnière :
args(0) = "-s"
args(1)="toto.txt"
args(2)="f"
agrs(3)="1"


"Etienne REMOND" a écrit dans le message de news:

> Bonjour
>
> je développe une "application windows" sous vb.net. je suppose que ça va
> produire un .exe. je souhaite appeler ce .exe en ligne de commande avec
> des arguments. j'aimerais savoir comment récupérer les arguments de la
> ligne de commande.
>
> si quelqu'un sait, merci d'avance
>
>
>
>
> Etienne





Avatar
Papa_Claude
Bonjour,

J'ai appliqué votre réponse mais j'ai un nouveau problème: la procédure main
prend maintenant le contrôle de mon application et le "windows form" ne
s'affiche plus.

Comment donc passer des arguments à une application ne contenant qu'un
"windows form"?

Merci beaucoup,

Claude Fortier

"AlexC" wrote:

Pour cela il te faut creer une Sub Main de cette manière :

Public Shared Sub Main ( Byval Args() as string)
(--- Code ---)
End Sub

chaques éléments du tableau args représentera un des arguments passés en
ligne de commande séparés par un espace.

Ex:

MonAppli.exe -s toto.txt -f 1

Ton tableau se composera de cette amnière :
args(0) = "-s"
args(1)="toto.txt"
args(2)="f"
agrs(3)="1"


"Etienne REMOND" a écrit dans le message de news:

> Bonjour
>
> je développe une "application windows" sous vb.net. je suppose que ça va
> produire un .exe. je souhaite appeler ce .exe en ligne de commande avec
> des arguments. j'aimerais savoir comment récupérer les arguments de la
> ligne de commande.
>
> si quelqu'un sait, merci d'avance
>
>
>
>
> Etienne





Avatar
Papa_Claude
Bonjour,

J'ai appliqué votre réponse mais j'ai un nouveau problème: la procédure main
prend maintenant le contrôle de mon application et le "windows form" ne
s'affiche plus.

Comment donc passer des arguments à une application ne contenant qu'un
"windows form"?

Merci beaucoup,

Claude Fortier

"AlexC" wrote:

Pour cela il te faut creer une Sub Main de cette manière :

Public Shared Sub Main ( Byval Args() as string)
(--- Code ---)
End Sub

chaques éléments du tableau args représentera un des arguments passés en
ligne de commande séparés par un espace.

Ex:

MonAppli.exe -s toto.txt -f 1

Ton tableau se composera de cette amnière :
args(0) = "-s"
args(1)="toto.txt"
args(2)="f"
agrs(3)="1"


"Etienne REMOND" a écrit dans le message de news:

> Bonjour
>
> je développe une "application windows" sous vb.net. je suppose que ça va
> produire un .exe. je souhaite appeler ce .exe en ligne de commande avec
> des arguments. j'aimerais savoir comment récupérer les arguments de la
> ligne de commande.
>
> si quelqu'un sait, merci d'avance
>
>
>
>
> Etienne





Avatar
AlexC
Bonjour,

Premierement évitez de poster 3 fois, on vous a vu !! ;)
Ensuite moi je ne vous ai donné que le code pour pouvoir récupérer
les arguments passés en ligne de commande, mais le reste vopus deviez
trouver tout seul :)
c'est pas marrant, et pas pédagogique du tout quand on donne toute la
solution !
Quoi qu'il en soit je vous explique ( comme moi je le percoit si mon
explixation est erronée merci aux autre de la rectifier ) :
VS a besoin de savoir par quoi le programme doit démarrer donc il existe un
propriété du projet ou l'on doit lui indiquer
la procedure ( Je crois que c'est obligatoirement une sub main ) ou la form
sur laquelle le logiciel doit démarrer.
Seule petite différence entre les deux :
Lorsque l'on utilise une form ( une classe donc ) elle est instanciée au
démarrage puis sa méthode Show() est appelé juste après
Lorsque l'on utilise la méthode "Main" la classe de la form principale n'est
pas instanciée, mais la méthode "Main" est appellée.
Si aucun code spécifique n'est mis dans cette procédure, le code s'éxécute
puis le programme s'arrete puisque la fin de l'éxécution de la méthode
"Main"
marque la fin de l'éxécution du programme. Tu a plusieurs solution, je t'en
donne une :

Public Shared Sub Main ( Byval Args() as string)

(--- Code ---)
Dim MyForm as new Form1
MyForm.ShowDialog

End Sub

ici tant que la form1 ne sera pas fermée, l'application ne s'arretera pas .

"Papa_Claude" a écrit dans le
message de news:
Bonjour,

J'ai appliqué votre réponse mais j'ai un nouveau problème: la procédure
main
prend maintenant le contrôle de mon application et le "windows form" ne
s'affiche plus.

Comment donc passer des arguments à une application ne contenant qu'un
"windows form"?

Merci beaucoup,

Claude Fortier

"AlexC" wrote:

Pour cela il te faut creer une Sub Main de cette manière :

Public Shared Sub Main ( Byval Args() as string)
(--- Code ---)
End Sub

chaques éléments du tableau args représentera un des arguments passés en
ligne de commande séparés par un espace.

Ex:

MonAppli.exe -s toto.txt -f 1

Ton tableau se composera de cette amnière :
args(0) = "-s"
args(1)="toto.txt"
args(2)="f"
agrs(3)="1"


"Etienne REMOND" a écrit dans le message de
news:

> Bonjour
>
> je développe une "application windows" sous vb.net. je suppose que ça
> va
> produire un .exe. je souhaite appeler ce .exe en ligne de commande avec
> des arguments. j'aimerais savoir comment récupérer les arguments de la
> ligne de commande.
>
> si quelqu'un sait, merci d'avance
>
>
>
>
> Etienne







Avatar
Papa_Claude
Bonjour AlexC,

Premierement évitez de poster 3 fois, on vous a vu !! ;)



Désolé, j'écris directement à partir du site de Microsoft
(support.microsoft.com) et je recevais un message d'erreur m'indiquant que
mon message n'avait pas été envoyé...

Ensuite moi je ne vous ai donné que le code pour pouvoir récupérer
les arguments passés en ligne de commande, mais le reste vopus deviez
trouver tout seul :)
c'est pas marrant, et pas pédagogique du tout quand on donne toute la
solution !



Vous avez tout à fait raison. Je vous remercie également de m'aider dans mon
problème, car j'aurais été bien mal pris si vous ne m'aviez pas aidé.

Quoi qu'il en soit je vous explique ( comme moi je le percoit si mon
explixation est erronée merci aux autre de la rectifier ) :
VS a besoin de savoir par quoi le programme doit démarrer donc il existe un
propriété du projet ou l'on doit lui indiquer
la procedure ( Je crois que c'est obligatoirement une sub main ) ou la form
sur laquelle le logiciel doit démarrer.



Ah? Je ne le savais pas, je vais chercher voir où c'est.

Seule petite différence entre les deux :
Lorsque l'on utilise une form ( une classe donc ) elle est instanciée au
démarrage puis sa méthode Show() est appelé juste après
Lorsque l'on utilise la méthode "Main" la classe de la form principale n'est
pas instanciée, mais la méthode "Main" est appellée.
Si aucun code spécifique n'est mis dans cette procédure, le code s'éxécute
puis le programme s'arrete puisque la fin de l'éxécution de la méthode
"Main"
marque la fin de l'éxécution du programme. Tu a plusieurs solution, je t'en



Logique, et jusque l'à je l'avais compris.

donne une :

Public Shared Sub Main ( Byval Args() as string)

(--- Code ---)
Dim MyForm as new Form1
MyForm.ShowDialog

End Sub

ici tant que la form1 ne sera pas fermée, l'application ne s'arretera pas .



Effectivement c'est les deux lignes qui me manquaient. J'avais essayé
différentes choses comme "Form1.new()" mais cela ne fonctionnait pas bien
évidemment.

Merci beaucoup!

Claude Fortier