Composant [Résolu]

Signaler
Messages postés
96
Date d'inscription
mercredi 26 mai 2010
Statut
Membre
Dernière intervention
27 mai 2010
-
Messages postés
96
Date d'inscription
mercredi 26 mai 2010
Statut
Membre
Dernière intervention
27 mai 2010
-
salut!
j'ai créer une application! je voudrais savoir comment connaitre les composants dont celle ci a besoin pour tourner,(et ou dois les copier) sur une machine ou le dotnet n'est pas installé! afin de les joindre avec l'exe.Petite précision je developpe avec Visual C# sharp express.

15 réponses

Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
49
ProcessStartInfo
psi =

new



ProcessStartInfo
(

"tonAppli.exe"
);
psi.Arguments =

"coucou"
;


Process
.Start(psi);
Ca devrait fonctionner.
N'oublie pas, dans ton programme appelé, de verifier que args[] n'est pas null, et aussi sa propriété Length.

Mx
MVP C# 
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
49
Passe tes arguments sans virgule, n'utilise pas de Split();

Cependant, si tu veux absolument faire comme ca, j'ai testé ton code, et ca fonctionne...

string[] user = args[0].Split(
new
Char[] {
',' });

foreach (
string s
in user)

Console.WriteLine(s);
testé de cette façon :

Process.Start(
"test.exe",
"arg1,arg2");

Mx
MVP C# 
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
49
Salut,

Il faut y installer le Framework .Net 2.0 que tu pourras trouver iciEnsuite, tout depend, si ton appli utilises des composants specifiques ou non.

Mx
MVP C# 
Messages postés
96
Date d'inscription
mercredi 26 mai 2010
Statut
Membre
Dernière intervention
27 mai 2010

Il n'y as donc aucun moyen de connaitre les composants dont mon appli à besoin pour fonctionner (Style VB6) je suis obliger d'installer la totalité Framework .Net 2.0???????????
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
49
Ton appli a besoin du framework pour tourner !
C'est comme pour le java, où il faut installer le JRE.
Ce n'est pas un énorme probleme hein ;) Ca pèse pas bien lourd, et c'est très utile de l'avoir (le framework .Net, pas le JRE^^ ).

Mx
MVP C# 
Messages postés
96
Date d'inscription
mercredi 26 mai 2010
Statut
Membre
Dernière intervention
27 mai 2010

je sais trés bien c juste pour info perso,sinon autre question comment puis je faire appel a un prog en passant un tableau de string[]en parametre la fonction process start n'accepte pas string[]en parametre poutant static void main accepte String[] en parametre
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
49
Il faut decomposer ton string[].
Quand tu tapes sous dos une commande qui prend plusieurs arguments en parametres, tu les lui mets a la suite.
Ici, c'est le meme procédé ;)

Mx
MVP C# 
Messages postés
96
Date d'inscription
mercredi 26 mai 2010
Statut
Membre
Dernière intervention
27 mai 2010

si j'ai bien compris je dois faire de mon string[] un string et me débrouillé par la suite avec OK j'ai compris !!!
Mais question bete peut etre pourquoi la fonction Void main accepte string[] en parametre?!!!!!!!!!!!!!
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
49
La fonction Main ;)

Si tu appeles "monProg arg1 arg2 arg3", tu as bien 3 strings en argument. Ensuite, tu n'as pas a t'occuper de comment ca marche, pour ton prog tu auras un tableau de string en entrée.
Peut-etre regarder du coté du code IL mais je pense pas qu'on y trouve qqchose de très révélateur.

Mx
MVP C# 
Messages postés
96
Date d'inscription
mercredi 26 mai 2010
Statut
Membre
Dernière intervention
27 mai 2010

je pa tout a fait saisi ton dernier message !! peut importe jte remercie pour les infos!!!!!!
Messages postés
96
Date d'inscription
mercredi 26 mai 2010
Statut
Membre
Dernière intervention
27 mai 2010

desole je reviens à la charge mais mon appel au prog me renvoi une erreur voici les ligne du prog appelant :

static void Main(string[] args)
{ Process.Start(@"adresse de mon appli","parametre1,parametre2"); }

Celle du prog appellé :

static string[] user = null;
static void Main(string[] args)
{ user = args[0].Split(new Char[] {','}) }
j'ai testé avec args[1] meme erreur
Messages postés
96
Date d'inscription
mercredi 26 mai 2010
Statut
Membre
Dernière intervention
27 mai 2010

l'erreur persiste System.indexOutRangeException dans le prog appelé,
apparament args[] serait null pourtant j'ai bien renseigner le processstartinfo dans le prog appelant
Messages postés
96
Date d'inscription
mercredi 26 mai 2010
Statut
Membre
Dernière intervention
27 mai 2010

l'erreur change ce coup ci systemnullreferenceexception franchement j'arrive pas avoir d'ou ca vient
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
54
Tu es bien sûr que tu récupères la bonne instance de ton programme?
J'ai l'impression que tu fais un split sur le args alors que le programme a été démarré sans argument.

<hr size= "2" /> VC# forever
=13319
Messages postés
96
Date d'inscription
mercredi 26 mai 2010
Statut
Membre
Dernière intervention
27 mai 2010

Désole mon erreur etait à l'interieur de mon prog appelé!

string[] user = args[0].Split(new Char[] { ',' });
foreach (string s in user)
Console.WriteLine(s);


Process.Start("test.exe", "arg1,arg2");
Cela Fonctionne effectivement!!
merci