IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

[Débutant][C#]Passer des paramètres à un exe


Sujet :

Windows Forms

  1. #1
    Membre du Club

    Inscrit en
    Juin 2003
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 64
    Points : 66
    Points
    66
    Par défaut [Débutant][C#]Passer des paramètres à un exe
    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
    if ( toi == "répondre à moi")
    {
    moi = "";
    }
    Débutant mais futur Pro...

  2. #2
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Points : 6 017
    Points
    6 017
    Par défaut
    Salut .

    Dans le main tu as string argv.

    c'est ça qui te donne les argument.
    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]);
        }
    }
    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
     
    Int32.Parse(argv[0]);
    - MVP C#
    -Tout problème a une solution, le vrai problème est de trouver la solution .....
    - Linux & mono : l'avenir

  3. #3
    Membre du Club

    Inscrit en
    Juin 2003
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 64
    Points : 66
    Points
    66
    Par défaut
    Merci de ta réponse.

    Quand je fais:

    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());
    		}
    j'ai l'erreur:

    Form1.Main(string) possède une signature erronnée pour un point d'entré.
    if ( toi == "répondre à moi")
    {
    moi = "";
    }
    Débutant mais futur Pro...

  4. #4
    Expert éminent
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Points : 7 660
    Points
    7 660
    Par défaut
    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());
    		}
    Pas de questions techniques par MP

  5. #5
    Membre du Club

    Inscrit en
    Juin 2003
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 64
    Points : 66
    Points
    66
    Par défaut
    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'
    if ( toi == "répondre à moi")
    {
    moi = "";
    }
    Débutant mais futur Pro...

  6. #6
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Points : 6 017
    Points
    6 017
    Par défaut
    Citation Envoyé par GéniuS77
    Merci de ta réponse.

    Quand je fais:

    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());
    		}
    j'ai l'erreur:

    Form1.Main(string) possède une signature erronnée pour un point d'entré.
    Désolé je suis allé trop vite il faut effectivement mettre un tableau de string

    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 .
    - MVP C#
    -Tout problème a une solution, le vrai problème est de trouver la solution .....
    - Linux & mono : l'avenir

  7. #7
    Membre du Club

    Inscrit en
    Juin 2003
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 64
    Points : 66
    Points
    66
    Par défaut
    Super sa fonctionne.
    Merci beaucoup de ton aide
    if ( toi == "répondre à moi")
    {
    moi = "";
    }
    Débutant mais futur Pro...

  8. #8
    Membre du Club

    Inscrit en
    Juin 2003
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 64
    Points : 66
    Points
    66
    Par défaut
    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];
     
     
    		}
    Par contre les variables restent dans cette procédure.
    Apparement aucune variable n'est chargée à ce moment ni aucune fonction donc impossible de faire par exemple: charger(num_dos);
    if ( toi == "répondre à moi")
    {
    moi = "";
    }
    Débutant mais futur Pro...

  9. #9
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Points : 6 017
    Points
    6 017
    Par défaut
    Citation Envoyé par GéniuS77
    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];
     
     
    		}
    Par contre les variables restent dans cette procédure.
    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 application
    - MVP C#
    -Tout problème a une solution, le vrai problème est de trouver la solution .....
    - Linux & mono : l'avenir

  10. #10
    Membre du Club

    Inscrit en
    Juin 2003
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 64
    Points : 66
    Points
    66
    Par défaut
    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...
    if ( toi == "répondre à moi")
    {
    moi = "";
    }
    Débutant mais futur Pro...

  11. #11
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    declares num_dos au niveau de la classe puis tu l'initialise dans Main
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  12. #12
    Membre du Club

    Inscrit en
    Juin 2003
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 64
    Points : 66
    Points
    66
    Par défaut
    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'
    if ( toi == "répondre à moi")
    {
    moi = "";
    }
    Débutant mais futur Pro...

  13. #13
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Points : 6 017
    Points
    6 017
    Par défaut
    Salut .

    tu met dans ta classe Form1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    static string nom_dos;
    et dans le onLoad de ta form

    et dans dans le main :
    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());
    }
    avec ça tu peux utiliser nom_dos partout quand tu veux .
    - MVP C#
    -Tout problème a une solution, le vrai problème est de trouver la solution .....
    - Linux & mono : l'avenir

  14. #14
    Membre du Club

    Inscrit en
    Juin 2003
    Messages
    64
    Détails du profil
    Informations forums :
    Inscription : Juin 2003
    Messages : 64
    Points : 66
    Points
    66
    Par défaut
    Ha merci c'est ça, faut la mettre en static.

    Merci beaucoup de ton aide
    if ( toi == "répondre à moi")
    {
    moi = "";
    }
    Débutant mais futur Pro...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 15/10/2014, 01h13
  2. Comment passer des paramètre a OpenRecordset
    Par molarisapa dans le forum Access
    Réponses: 2
    Dernier message: 09/03/2006, 17h14
  3. [JSP]Passer des paramètres dynamiques à un Flash
    Par paulo1b dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 27/11/2005, 21h29
  4. Réponses: 7
    Dernier message: 30/12/2004, 12h01
  5. passer des paramétres à un fichier sql
    Par vbcasimir dans le forum Oracle
    Réponses: 2
    Dernier message: 21/12/2004, 18h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo