Bonjour,
Je développe sur VS2003.
Mon exécutable dépend d'une autre application qui l'exécute en passant un paramètre de type string.
Comment faire dans cette exe pour déclarer qu'on recoit un paramètre?
C'est pas très clair mais bon
Merci d'avance









Bonjour,
Je développe sur VS2003.
Mon exécutable dépend d'une autre application qui l'exécute en passant un paramètre de type string.
Comment faire dans cette exe pour déclarer qu'on recoit un paramètre?
C'est pas très clair mais bon
Merci d'avance
Salut .
Dans le main tu as string argv.
c'est ça qui te donne les argument.
Après a toi de les convertirs pour qu'il ai le type que tu souhaites (par exemple un int)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 public static void Main(string argv) { if(argv.Length > 0 ) { Console.WriteLine(argv[0]); } }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Int32.Parse(argv[0]);









Merci de ta réponse.
Quand je fais:
j'ai l'erreur:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 [STAThread] static void Main(string argv) { num_dos=argv; Application.Run(new Form1()); }
Form1.Main(string) possède une signature erronnée pour un point d'entré.
C'est un tableau de chaîne qui est attendu il me semble :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 static void Main(string[] argv) { num_dos=argv[0]; Application.Run(new Form1()); }









Oui pour l'argument c'est bon, c'est bien un tableau qu'il attend apparement.
Mais pour la variable num_dos j'ai l'erreur:
C:\Documents and Settings\...\Form1.cs(109): Une référence d'objet est requise pour la propriété, la méthode ou le champ non statique Form1.num_dos'
Désolé je suis allé trop vite il faut effectivement mettre un tableau de stringEnvoyé par GéniuS77
A savoir que le premier argument (index 0) est le nom du programme .
sinon vérifie que num_dos est accessible depuis cette partie du code et que tu récuperes bien le bon type de variable .









Super sa fonctionne.
Merci beaucoup de ton aide![]()









Par contre les variables restent dans cette procédure.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 static void Main(string[] argv) { Application.Run(new Form1()); string num_dos=argv[0]; }
Apparement aucune variable n'est chargée à ce moment ni aucune fonction donc impossible de faire par exemple: charger(num_dos);
normal tu doit faire ton traitement avant Application.Run(new Form1()); sinon le programme rentre dans run et ne ressort que quand tu quittes ton applicationEnvoyé par GéniuS77









Ben même si je le met avant le Run, c'est pareille.
J'ai une procédure charger(string unDossier);
Elle n'apparaît pas dans la complétion de code quand je suis dans le main.
Parcontre je la vois partout ailleurs....
Si je le met avant le run, rien n'est encore créer non? Ni variable ni procédure ... J'ai besoin de récupérer le paramètre passé à l'EXE...
declares num_dos au niveau de la classe puis tu l'initialise dans Main









Si je fais ça j'ai le message
C:\...\Form1.cs(269): Une référence d'objet est requise pour la propriété, la méthode ou le champ non statique ....Form1.num_dos'
Salut .
tu met dans ta classe Form1 :
et dans le onLoad de ta form
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 static string nom_dos;
et dans dans le main :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 charger(nom_dos);
avec ça tu peux utiliser nom_dos partout quand tu veux .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public static void Main(string[] argv) { Form1.nom_dos = argv[0]; Application.Run(new Form1()); }









Ha merci c'est ça, faut la mettre en static.
Merci beaucoup de ton aide![]()
Partager