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 :

Executer commande DOS avec arguments


Sujet :

C#

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mars 2009
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2009
    Messages : 43
    Points : 30
    Points
    30
    Par défaut Executer commande DOS avec arguments
    Bonjour !
    J'aimerais exécuter cette commande DOS avec C# :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "C:\Program Files\Automated QA\TestComplete 6\Bin\TestComplete.exe" "C:\SVN\Progos\GestionPortail\GestionPortail.mds" /run /exit
    Pour l'instant, mon code est celui-ci, mais il n'arrive malheureusement pas à lancer les scénarios de mon application comme avec la commande DOS ci-dessus :
    Ici, il arrive juste à ouvrir et fermer l'application.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ProcessStartInfo Info = new ProcessStartInfo();
    Info.FileName = "C:\\Program Files\\Automated QA\\TestComplete 6\\Bin\\TestComplete.exe";
    Info.Arguments = "'C:\\SVN\\Progos\\GestionPortail\\GestionPortail.mds' /run /exit";
    Process.Start(Info);
    Ai-je oublié quelque chose ? Ou bien mes arguments ne sont pas bon ?

  2. #2
    Membre habitué Avatar de Johann7751
    Profil pro
    Analyste Programmeur Junior
    Inscrit en
    Février 2009
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Programmeur Junior

    Informations forums :
    Inscription : Février 2009
    Messages : 234
    Points : 142
    Points
    142
    Par défaut
    (Met des balises de codes, c'est le "#" dans l'editeur de message)

    Salut,

    En ce moment, je fais un programme qui fait un peu pareil que toi, c'est à dire lançer un batch et exécuter une commande.

    Voici un exemple de code qui fonctionne pour ma commande :
    (J'ai testé ca fontionne)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Process p = new Process();
                p.StartInfo.FileName = "cmd.exe";
                p.StartInfo.Arguments = "/C PELISF " + fileISF + " " + env + " " + exp + " " + des + " " + snd + " " + dtb + " " + dte + " " + fileToSend;
                p.StartInfo.UseShellExecute = true;
                p.Start();
    Ma commande PELISF contient plusieurs arguments.
    Essaye peut être avec ce modèle.

    Sinon c'est peut être le UseShellExecute que tu as oublié.

    [EDIT]
    Après toi c'est pas un invite de commande, c'est une application..
    Faudrait voir si la manière de passer tes arguments est correcte, ça je pense que ça dépend de l'application.
    [/EDIT]

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mars 2009
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2009
    Messages : 43
    Points : 30
    Points
    30
    Par défaut
    Avant que tu postes, j'avais changé comme ceci, mais cela ne marche toujours pas. J'ai rajouté aussi UseShellExecute. Mais il ne lance toujours pas le scénario GestionPortail.mds dans l'application.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Process P = new Process();
    P.StartInfo.FileName = "C:\\Program Files\\Automated QA\\TestComplete 6\\Bin\\TestComplete.exe";
    P.StartInfo.Arguments = @"'C:\\SVN\\Progos\\GestionPortail\\GestionPortail.mds' /run /exit";
    P.StartInfo.UseShellExecute = true;
    P.Start();
    P.Close();
    [EDIT]
    En fait, j'ai trouvé mon erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    P.StartInfo.Arguments = "C:\\SVN\\Progos\\GestionPortail\\GestionPortail.mds /run /exit";
    Au lieu de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    P.StartInfo.Arguments = @"'C:\\SVN\\Progos\\GestionPortail\\GestionPortail.mds' /run /exit";
    En fait, il fallait enlever les guillemets de mon adresse... Tout simplement !...

    Mais maintenantcomment on fait pour éviter que le programme C# ne s'arrête alors que mon application lancée tourne toujours ?
    [/EDIT]

  4. #4
    Membre habitué Avatar de Johann7751
    Profil pro
    Analyste Programmeur Junior
    Inscrit en
    Février 2009
    Messages
    234
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Analyste Programmeur Junior

    Informations forums :
    Inscription : Février 2009
    Messages : 234
    Points : 142
    Points
    142
    Par défaut
    Au fait, elle sert à quoi en fait ton application que tu veux lançer ? C'est pour faire quoi ?

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mars 2009
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2009
    Messages : 43
    Points : 30
    Points
    30
    Par défaut
    Mon application sert à gagner du temps en test logiciel. Ce logiciel permet de lancer scénarios de tests pré-enregistrés sur des interfaces (on fait le test 1 fois et après, ça fait tout seul ).
    Tu as vu mon edit ?

  6. #6
    Membre confirmé
    Profil pro
    Développeur freelance
    Inscrit en
    Août 2006
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur freelance

    Informations forums :
    Inscription : Août 2006
    Messages : 453
    Points : 586
    Points
    586
    Par défaut
    Salut,

    Citation Envoyé par Zanthia Voir le message
    Mais maintenantcomment on fait pour éviter que le programme C# ne s'arrête alors que mon application lancée tourne toujours ?
    essaie ça :

    après ton p.Start()

    Mosco

  7. #7
    Nouveau membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mars 2009
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2009
    Messages : 43
    Points : 30
    Points
    30
    Par défaut
    Citation Envoyé par MoscoBlade Voir le message
    après ton p.Start()
    Merci beaucoup, ça marche nickel

  8. #8
    Membre confirmé
    Profil pro
    Développeur freelance
    Inscrit en
    Août 2006
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur freelance

    Informations forums :
    Inscription : Août 2006
    Messages : 453
    Points : 586
    Points
    586
    Par défaut
    Penses à cliquer sur le bouton résolu

    [EDIT : J'avais mal vu ]

  9. #9
    Nouveau membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mars 2009
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2009
    Messages : 43
    Points : 30
    Points
    30
    Par défaut
    Tiens j'y pense !
    Est-il possible de faire ce test là, histoire d'éviter d'avoir un message d'erreur si l'application est déjà lancée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    if (!MonApplication.Run)   <= genre un booléen qui teste si elle est en route ou pas
    {
    P.StartInfo.FileName = "C:\\Program Files\\Automated QA\\TestComplete 6\\Bin\\TestComplete.exe";
    P.StartInfo.Arguments = @"'C:\\SVN\\Progos\\GestionPortail\\GestionPortail.mds' /run /exit";
     
    }
    else
    {
    P.StartInfo.FileName = "C:\\SVN\\Progos\\GestionPortail\\GestionPortail.mds /run /exit";
    }

  10. #10
    Membre confirmé
    Profil pro
    Développeur freelance
    Inscrit en
    Août 2006
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur freelance

    Informations forums :
    Inscription : Août 2006
    Messages : 453
    Points : 586
    Points
    586
    Par défaut
    Je n'arrive pas à comprendre ce que tu veux dire.

    Si tu mets :
    ton programme ne poursuivra pas son exécution avant que le process ne soit terminé.

  11. #11
    Nouveau membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mars 2009
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2009
    Messages : 43
    Points : 30
    Points
    30
    Par défaut
    Hum oui désolé...
    En fait, ce que j'aimerais c'est qu'avant de lancer l'application, vérifier si elle est déjà lancée ou pas.
    Tu vois ce que je veux dire ?
    Car si je fais Process.Start(); et que l'application est déjà en route (en ayant moi-même lancée celle-ci en dehors du code C#), j'aurais un message d'erreur et ça me plante toute la suite de mon programme !

  12. #12
    Membre confirmé
    Profil pro
    Développeur freelance
    Inscrit en
    Août 2006
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France, Ardèche (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur freelance

    Informations forums :
    Inscription : Août 2006
    Messages : 453
    Points : 586
    Points
    586
    Par défaut
    tu peux regarder là : http://faqcsharp.developpez.com/?pag...#syst_proclist

    Je ne connais que cette solution, peut-être en existe il une autre ?

  13. #13
    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
    Citation Envoyé par Zanthia Voir le message
    ...
    En fait, il fallait enlever les guillemets de mon adresse... Tout simplement !
    ...
    J'arrive après la guerre, mais il faut des guillemets ! Les arguments en ligne de commande sont découpés suivant les espaces, donc si le chemin comporte des espaces tu es certain d'avoir des erreurs.

    Le problème dans le cas présent c'est que tu as utilisé des apostrophes au lieu de guillemets.

    Ceci ne devrait pas poser de problème normalement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    P.StartInfo.Arguments = @"""C:\\SVN\\Progos\\GestionPortail\\GestionPortail.mds"" /run /exit";
    Pas de questions techniques par MP

  14. #14
    Nouveau membre du Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    Mars 2009
    Messages
    43
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2009
    Messages : 43
    Points : 30
    Points
    30
    Par défaut
    Ah ok pour les guillemets ! Mais si je passe une partie de mon paramètre en paramètre ? Les guillemets ne marchent pas comme ça : (en rouge)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    LaunchTC("""C:\\SVN\\Progos\\GestionPortail\\GestionPortail.mds""");
    
    ....
    
    P.StartInfo.Arguments = @"" + Scenarios + " /run /exit";
    Petite question qui me préoccupe là.. quand est-ce qu'il faut mettre ou pas le "@" ? Merci

  15. #15
    Membre émérite Avatar de nicolas.sitbon
    Profil pro
    Inscrit en
    Août 2007
    Messages
    2 015
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 2 015
    Points : 2 280
    Points
    2 280
    Par défaut
    Citation Envoyé par Zanthia Voir le message
    Petite question qui me préoccupe là.. quand est-ce qu'il faut mettre ou pas le "@" ? Merci
    http://msdn.microsoft.com/en-us/libr...90(VS.71).aspx
    "The quieter you become, the more you are able to hear"
    "Plus vous êtes silencieux, plus vous êtes capable d'entendre"

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

Discussions similaires

  1. Executer une commande DOS avec guillemets
    Par doons dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 20/02/2015, 17h02
  2. Executer une commande DOS || avec un autre language.
    Par Yamuto dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 30/07/2013, 16h14
  3. Réponses: 2
    Dernier message: 13/06/2008, 19h15
  4. [API][Système] Executer une commande dos avec arguments
    Par oOoOuuhmAn dans le forum Général Java
    Réponses: 4
    Dernier message: 17/03/2006, 12h37
  5. [Système][Dos] Execution commandes DOS
    Par Machjaghjolu dans le forum API standards et tierces
    Réponses: 18
    Dernier message: 02/01/2006, 21h59

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