ProcessStartInfo

cs_petitou
Messages postés
18
Date d'inscription
jeudi 8 avril 2004
Statut
Membre
Dernière intervention
28 octobre 2005
- 17 juin 2004 à 16:59
cs_petitou
Messages postés
18
Date d'inscription
jeudi 8 avril 2004
Statut
Membre
Dernière intervention
28 octobre 2005
- 18 juin 2004 à 09:30
Bonjour, j'utilise la classe ProcessStartInfo pour lancer un processus à partir de mon application. Il faut que je passe plusieurs arguments à ce process, les arguments se passe dans un string :
ex:
ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
startInfo.Arguments = "www.google.fr";

or je ne sais pas comment lui passer plus d'1 arguments, je ne sais pas comment on les sépare à l'intérieur de la chaine de caractères. Peut-être des ";", des " ", des ","
Je n'en ai aucune idée.
Quelqu'un connait-il la réponse?
Merci beaucoup.
A voir également:

7 réponses

cs_coq
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Membre
Dernière intervention
2 août 2014
99
17 juin 2004 à 17:20
en fait ce n'est pas le framework qui interprete la chaine Arguments mais l'appli qui la recoit en parametre de lancement.
donc pour toi savoir comme la formatter il faut que tu saches ce qu'attend l'appli a lancer

Cocoricoooooooo !!!!
0
cs_petitou
Messages postés
18
Date d'inscription
jeudi 8 avril 2004
Statut
Membre
Dernière intervention
28 octobre 2005

17 juin 2004 à 17:23
Donc si c'est un main C++, il faut des espaces entre les arguments si j'ai bien compris?
0
cs_coq
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Membre
Dernière intervention
2 août 2014
99
17 juin 2004 à 17:50
ça je sais pas
tout depend de la façon dont l'appli traite ce qui lui arrive au lancement

Cocoricoooooooo !!!!
0
crack_xp
Messages postés
91
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
25 janvier 2007

17 juin 2004 à 20:28
Salut,

Tu passes tes arguments séparer par un espace mais par contre utilise la classe Start:

J’ai créer une application dos qui prend deux args :
args[0] , agrs[1] et les affiches au console

et avec une autre appli je lance :

 


donc deux argument séparé par un espace et ainsi de suite
si t'arrive pas a faire fonctionner ça je peux t'envoyer un zip contenant l exemple

NO TIME TO WASTE
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
crack_xp
Messages postés
91
Date d'inscription
samedi 28 février 2004
Statut
Membre
Dernière intervention
25 janvier 2007

17 juin 2004 à 20:29
pardon le code est le suivant


Process.Start(@"C:\ConsoleApplication1.exe", "Bonjour petitou "); 


NO TIME TO WASTE
0
cs_petitou
Messages postés
18
Date d'inscription
jeudi 8 avril 2004
Statut
Membre
Dernière intervention
28 octobre 2005

18 juin 2004 à 09:24
Ben voila le code exact (qui fonctionne) de ma methode pour ceux que ça intéressent.
Cette methode lance un exe qui est une appli console C++, et donc lance le main de l'appli. Pour récupérer les arguments dans le main, il faut faire avec argv[i] ou i est la position de l'argument.
0
cs_petitou
Messages postés
18
Date d'inscription
jeudi 8 avril 2004
Statut
Membre
Dernière intervention
28 octobre 2005

18 juin 2004 à 09:30
Oups, erreur de manip!
dsl.
Voila le code

//On declare un ProcessStartInfo associé à monAppli.exe
System.Diagnostics.ProcessStartInfo psi =
new System.Diagnostics.ProcessStartInfo(@"C:\monAppli.exe");
//On redirige la sortie du process
psi.RedirectStandardOutput = true;
psi.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
//On passe les arguments ici en séparant les arguments par des espaces
psi.Arguments = "arg1 arg2 arg3";
psi.UseShellExecute = false;
//On declare un nouveau process
System.Diagnostics.Process monProcess;
//On demarre ce process sur le psi qui convient
monProcess= System.Diagnostics.Process.Start(psi);
//On recupere la sortier du process dans un streamreader
System.IO.StreamReader myOutput = monProcess.StandardOutput;
//Ici, on attend la fin d'execution du process (appel asynchrone), on peut surcharger cette methode pour attendre un teemps donné et reprendre la main si ça dure trop longtemps par exemple
monProcess.WaitForExit();
if (monProcess.HasExited)
{
//la sortie du process est recuperee dans un string
string output = myOutput.ReadToEnd();
MessageBox.Show(output);
}
0