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

C# Discussion :

Lancement d'une application en C# avec parametre via msdos e


Sujet :

C#

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Août 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 4
    Points : 1
    Points
    1
    Par défaut Lancement d'une application en C# avec parametre via msdos e
    Bonjour.

    Voila mon problème :
    j'ai développé une application en C# (sans paramètre de lancement) et je souhaiterai pouvoir la lancer via une commande msdos tout en passant des paramètres de démarrage.

    En gros, mon exécutable s'appelle : MonProjet.exe
    Pour le lancer j'utilise une commande msdos et tape : C:\ ... \MonProjet.exe
    Et je souhaiterai pouvoir la lancer avec des plusieurs paramètres; du genre :
    C:\ ... \MonProjet.exe [Parametre1] [Paramètre2]

    Est ce que quelqu'un connaitrai les méthodes pour implémenter cela dans mon projet en C# pour que celui-ci, au démarrage :

    1 - récupérer les paramètres tapés dans la commande msdos externe
    2 - Utiliser les paramètres comme variable dans mon projet

    Merci d'avance pour votre aide

  2. #2
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Hello,

    t'as tout ce qu'il faut là : Environment.GetCommandLineArgs()

    Après, tu peux créer un fichier .bat (ou .cmd), ou même un raccourci vers ton exe, avec les paramètres que tu veux.
    ಠ_ಠ

  3. #3
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    Salut,

    tu as un mecanisme de recuperation des arguments de ligne de commande qui correspond a ce qui existe, par exemple, en C

    http://msdn.microsoft.com/fr-fr/libr...8VS.80%29.aspx

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  4. #4
    Nouveau Candidat au Club
    Inscrit en
    Août 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Merci pour vos reponses!

    J'ai déjà croisé, lors de mes précédentes recherches, ces deux méthodes...
    Après les avoir testées, je me suis rendu compte, qu'elles n'étaient valables que en local (au niveau logiciel). Sauf erreur de ma part !

    En tout cas, je n'arrive toujours pas a lire les lignes de commande tapées dans la fenêtre msdos (fenêtre dos normal de windows, indépendante de mon appli).

    Si vous avez d'autres idées ou que l'erreur viens de mon côté, je suis preneur!

    merci!

  5. #5
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Je comprends pas ton souci.

    Si, en ligne de commande, tu tapes TonProgramme.exe blabla bloblo, tu récupères dans le programme lui même un tableau contenant blabla et bloblo.

    Cette ligne de commande peut être directement tapée à la main dans cmd.exe (le prompt windows), ou bien dans un fichier de commande (bat ou cmd), ou dans un raccourci windows (fichier lnk).

    Que veux-tu dire quand tu écris que ces méthodes "ne sont valables qu'en local" ?

    Et tant que j'y suis : le dos, ça existe plus
    ಠ_ಠ

  6. #6
    Nouveau Candidat au Club
    Inscrit en
    Août 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Re coucou^^

    Bon alors, pour ce qui est de récupérer la commande de lancement de l'application, je crois que j'ai trouvé. je posterai la solution si cela fonctionne!

    Par contre, mon deuxième soucis, c'est d'ajouter des paramètres de lancement dans mon appli. J'ai tenté de les ajouter comme en C dans le Main (cf. code ci dessous) mais je ne peux plus compiler car ma méthode n'est plus statique...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    namespace TH_VIEW_Project
    {
        static class Program
        {
            /// <summary>
            /// Point d'entrée principal de l'application.
            /// </summary>
            [STAThread]
     
            static void Main( string param1, string param2)
            {
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Window());
            }
        }
    }
    Comment puis-je donc ajouter, par exemple, deux paramètres de type "string" pour pouvoir avoir en commande de lancement :
    C:\ ... \MonProjet.exe param1 param2

    [EDIT]

    Je viens de tester avec le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    namespace TH_VIEW_Project
    {
     
        static class Program
        {
            /// <summary>
            /// Point d'entrée principal de l'application.
            /// </summary>
            [STAThread]
     
            static void Main( string[] args)
            {
                if (args.Length > 0)
                {
                    //Pour chaque argument... On l'affiche.
                    foreach (string argument in args)
                        MessageBox.Show("Argument : " + argument);
                }
                else
                    MessageBox.Show("Vous n'avez pas passé d'arguments !");
     
     
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Window());
            }
        }
    }
    Maintenant, je n'ai plus de problème de compilation. Par contre, je ne sais pas trop comment faire en sorte que mon programme prenne en compte mon parametre. Je le lance via une fenetre msdos : "C:\ ... \MonProjet.exe" -toto

    Malheureusement, ma fonction retourne a chaque fois qu'il n'y a pas d'argument!

    merci

  7. #7
    Max
    Max est déconnecté
    Expert éminent sénior

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Points : 14 979
    Points
    14 979
    Par défaut
    Salut.

    Un main "standard" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    static void Main (string[] args) {
         ///...
    }
    où args contient la liste de tous les arguments que tu as pu passer en paramètre

    Si tu lances ton programme avec cette ligne C:\ ... \MonProjet.exe param1 param2, args[0] contiendra param1, args[1] param2, etc.

  8. #8
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Points : 1 521
    Points
    1 521
    Par défaut
    Le raccourci via le Main ne fonctionne que si tu es en application "console".

    En WinForms, il faut utiliser la méthode proposée par Guulh:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
            [STAThread]
            static void Main()
            {
                string[] args = Environment.GetCommandLineArgs();
                if (args.Length > 0)
                {
                ...

  9. #9
    Nouveau Candidat au Club
    Inscrit en
    Août 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 4
    Points : 1
    Points
    1
    Par défaut
    Bon ça ne veux pas fonctionner. Pourriez vous si possible, me répondre avec un bout de code a titre d'exemple fonctionnel pour le principe suivant :

    1 - je créé un raccourci
    2 - cible du raccourci = "c:\ ... \ MonProjet.exe" parametre1 parametre2
    3 - récupérer mes deux paramètres respectivement dans param1, param2 (cf. code ci dessous)

    ATTENTION : Comme précisé précédemment, mon application est en WinForms !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    namespace TH_VIEW_Project
    {
     
        static class Program
        {
            /// <summary>
            /// Point d'entrée principal de l'application.
            /// </summary>
            [STAThread]
     
            static void Main(string[] args)
            {
                args = Environment.GetCommandLineArgs();
                string param1 = args[0]; // je recupère mon parametre1
                string param2 = args[1]; // je récupère mon paramètre2
     
                if(args.Length >0)
                {
                    MessageBox.Show("argument1 : ", param1);
                    MessageBox.Show("argument1 : ", param2);
                }
                else
                {
                    MessageBox.Show("pas d argument !");
                }
     
     
     
                Application.EnableVisualStyles();
                Application.SetCompatibleTextRenderingDefault(false);
                Application.Run(new Window());
            }
        }
    }
    Encore désolé pour la gène occasionné et merci de votre patience!

  10. #10
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Et ? Ton bout de code marche pas ?

    Par ailleurs, affecter Environment.GetCommandLineArgs() à args sert à rien. T'es dans le main, et args contient déjà les paramètres.
    ಠ_ಠ

Discussions similaires

  1. Problème de lancement d'une application d'authentification avec Twitter
    Par L'aigle de Carthage dans le forum Android
    Réponses: 2
    Dernier message: 23/06/2014, 10h10
  2. Parametres lors du lancement d'une application
    Par nimbus629 dans le forum VB.NET
    Réponses: 2
    Dernier message: 23/12/2011, 15h27
  3. Lancement d'une application avec des variables
    Par pachtoo dans le forum Android
    Réponses: 3
    Dernier message: 30/05/2011, 17h18
  4. Problème de lancement d'une application avec JWS
    Par petiteminette44 dans le forum JWS
    Réponses: 1
    Dernier message: 11/08/2008, 14h41
  5. Probleme de lancement d'une application avec SQL
    Par Tigre_82 dans le forum VB.NET
    Réponses: 4
    Dernier message: 08/10/2007, 11h26

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