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 :

Bizzarerie avec Process


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut Bizzarerie avec Process
    Bonjour,

    Bon voilà je dois lancer une application avec certains arguments.
    La commande à exécuter passe très bien en dos, mais dès que je la met dans le start de l'objet process, cela bug

    Donc mettant en cause mon code, j'ai fait différent essais, et j'ai constaté quelque chose qui me dépasse

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Log.Write("\"" + XMLManager.Liste["ToolsPathExe"] + "\"" + " -t " + XMLManager.Liste["ToolScenName"] + " -l " + Tools.LocalPath + "\\ResultTest -r excel \"" + XMLManager.Liste["ToolsPathCampaign"] + "\"");
    Log est un objet qui gère mes fichiers log. La ligne de code ci dessus génère la ligne suivante dans le log :
    "C:\Program Files\TTworkbenchBasic\TTman.bat" -t SIP_RG_RR_V_004 -l c:\temp\ResultTest -r excel "C:\Documents and Settings\uspa8495\workspace\TTsuite-SIP_3.1.1\ttcn3\RFC3261\cf.clf"
    Et vous savez quoi ? C'est tout à fait correct.

    Un copié collé de cette ligne dans la console dos et hop l'application se lance et fait ce qu'elle doit faire

    D'ailleurs si je fait ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Process.Start("\"C:\\Program Files\\TTworkbenchBasic\\TTman.bat\"", "-t SIP_RG_RR_V_004 -l c:\\temp\\ResultTest -r excel \"C:\\Documents and Settings\\uspa8495\\workspace\\TTsuite-SIP_3.1.1\\ttcn3\\RFC3261\\cf.clf\"");
    Cela marche à merveille

    Maintenant si j'essaye ce bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Process.Start(XMLManager.Liste["ToolsPathExe"], "-t " + XMLManager.Liste["ToolScenName"] + "-l " + Tools.LocalPath + "\\ResultTest -r excel \"" + XMLManager.Liste["ToolsPathCampaign"] + "\"");
    Ou celuic-ci (comme dans le Log.Write) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Process.Start("\"" + XMLManager.Liste["ToolsPathExe"] + "\"" + " -t " + XMLManager.Liste["ToolScenName"] + "-l " + Tools.LocalPath + "\\ResultTest -r excel \"" + XMLManager.Liste["ToolsPathCampaign"] + "\"");
    Ou encore celui (exe, argument) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Process.Start("\"" + XMLManager.Liste["ToolsPathExe"] + "\"", "-t " + XMLManager.Liste["ToolScenName"] + "-l " + Tools.LocalPath + "\\ResultTest -r excel \"" + XMLManager.Liste["ToolsPathCampaign"] + "\"");
    Bah cela plante

    Et que dire de cette portion de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
                Log.Write("TTWorkbenchManager.Run début");
                TTWorkBench = new Process();
                Log.Write("\"" + XMLManager.Liste["ToolsPathExe"] + "\"" + " -t " + XMLManager.Liste["ToolScenName"] + " -l " + Tools.LocalPath + "\\ResultTest -r excel \"" + XMLManager.Liste["ToolsPathCampaign"] + "\"");
                TTWorkBenchInfo = new ProcessStartInfo("\"" + XMLManager.Liste["ToolsPathExe"] + "\"" + " -t " + XMLManager.Liste["ToolScenName"] + "-l " + Tools.LocalPath + "\\ResultTest -r excel \"" + XMLManager.Liste["ToolsPathCampaign"] + "\"");
                //TTWorkBenchInfo.WindowStyle = ProcessWindowStyle.Hidden;
                //TTWorkBenchInfo.RedirectStandardOutput = true;
                //TTWorkBenchInfo.UseShellExecute = false;
                TTWorkBench.StartInfo = TTWorkBenchInfo;
                TTWorkBench.Start();
                //Log.Write(TTWorkBench.StandardOutput.ReadToEnd());
                TTWorkBench.WaitForExit();
                Log.Write("TTWorkbenchManager.Run fin");
    L'application se lance mais elle ne comprend pas certain argument
    C'est à en devenir

    Surtout que ma liste et les propriétés de mon outil tools renvois les bonnes valeur parce que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Log.Write("\"" + XMLManager.Liste["ToolsPathExe"] + "\"" + " -t " + XMLManager.Liste["ToolScenName"] + " -l " + Tools.LocalPath + "\\ResultTest -r excel \"" + XMLManager.Liste["ToolsPathCampaign"] + "\"");
    M"ecrit dans le fichier la ligne de commande correcte, avec les bonnes valeurs.

    Alors là je suis totalement perdu, je ne comprend plus rien, je ne vois pas mon erreur.



    Je vous remercie de m'avoir lu et de l'aide que vous pourrez m'apporter.

    PS : Dites moi, pourquoi est ce toujours sur les classes les plus basiques, les taches les plus simple, les méthodes que l'on maitrise le mieux, que l'on perd le plus de temps ? Que cela bug constemment ???

  2. #2
    Membre éprouvé Avatar de Onlava
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2007
    Messages : 92
    Par défaut
    euh est-ce que StartInfo.Arguments ne sert pas justement à ça ?

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Onlava Voir le message
    euh est-ce que StartInfo.Arguments ne sert pas justement à ça ?
    Effectivement ce serait plus propre, et ça éviterait de s'embêter avec les guillemets autour du chemin de l'exécutable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    TTWorkBenchInfo = new ProcessStartInfo(XMLManager.Liste["ToolsPathExe"]);
    TTWorkBenchInfo.Arguments = "-t " + XMLManager.Liste["ToolScenName"] + "-l " + Tools.LocalPath + "\\ResultTest -r excel \"" + XMLManager.Liste["ToolsPathCampaign"] + "\"";
    ...
    EDIT: au fait c'est quoi l'erreur qui se produit ?

  4. #4
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Effectivement ce serait plus propre, et ça éviterait de s'embêter avec les guillemets autour du chemin de l'exécutable.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    TTWorkBenchInfo = new ProcessStartInfo(XMLManager.Liste["ToolsPathExe"]);
    TTWorkBenchInfo.Arguments = "-t " + XMLManager.Liste["ToolScenName"] + "-l " + Tools.LocalPath + "\\ResultTest -r excel \"" + XMLManager.Liste["ToolsPathCampaign"] + "\"";
    ...
    EDIT: au fait c'est quoi l'erreur qui se produit ?
    Merci pour vos réponses.

    Heu pour la propriété argument, peux être, je crois que je faisais ainsi dans mes autres programmes, mais comme le constructeur peux prendre aussi les arguments ...
    Je ne pense pas que cela change grand chose, enfin je peux essayer.

    Pour l'erreur, elle n'est pas très explicite, cela me dit surtout que cela a buggué au niveau de la méthode qui crée le process.

  5. #5
    Expert confirmé
    Avatar de ced600
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Août 2006
    Messages
    3 364
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Août 2006
    Messages : 3 364
    Par défaut
    Voilà après une bonne nuit de sommeil et quelque essais j'ai constaté ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "-t " + XMLManager.Liste["ToolScenName"] + "-l " + Tools.LocalPath
    Pas très lisible ainsi, vous comprendrez mieux avec ceci :
    "-t SIP_RG_RR_V_004-l c:\\temp\\ResultTest"
    Et ouais -t et -l sont deux arguments différent pris en compte par le logiciel, et comme un con j'ai oublié l'espace !!!!

    Des fois j'ai envie de sur ma propre personne.
    Toute une après midi pour cela !!!!!

    Bon j'en ai profiter pour enseigner tous les arguments de StartInfo.

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2005
    Messages : 700
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    "-t SIP_RG_RR_V_004-l c:\\temp a faire\\ResultTest"
    Si ton chemin comporte des espaces, ca marche toujours?

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

Discussions similaires

  1. [VB.NET 1.1] Ping silencieux avec Process.Start()
    Par toniolol dans le forum Windows Forms
    Réponses: 6
    Dernier message: 30/09/2008, 13h35
  2. Bizzarerie avec un read et un write
    Par Radec dans le forum C
    Réponses: 2
    Dernier message: 19/03/2007, 09h27
  3. probleme avec Process et Runtime
    Par vince3320 dans le forum API standards et tierces
    Réponses: 1
    Dernier message: 16/01/2007, 18h57
  4. handle avec "process identity" ?
    Par ilimo dans le forum C++
    Réponses: 1
    Dernier message: 29/04/2006, 19h06

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