Commande pour exécuter un programme en dehord de C#

XDOOM Messages postés 3 Date d'inscription vendredi 19 décembre 2003 Statut Membre Dernière intervention 21 décembre 2003 - 19 déc. 2003 à 04:25
cs_nitrique Messages postés 344 Date d'inscription jeudi 1 mai 2003 Statut Membre Dernière intervention 4 avril 2011 - 25 avril 2005 à 17:14
Bonjour!

Je cherche une commande pour exécuter un programme en dehord de mon programme de C#.

J'ai esayé la commande Shell(), mais elle n'est pas dans C#...

Anciennement en VB6 j'utilisait

<<
Dim Play
Play = Shell(UnProgramme.exe -parametre, 1);
>>

En C# quel serait la commande? Merci.

J'utilise MSVS.NET2003 : Visual C#

Merci.

15 réponses

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
19 déc. 2003 à 11:30
il faut utiliser la classe Process

exemple de code qui me permet ici de fermer une session de connexion sur mes partages via l'exe net.exe de win :

// syntaxe de la commande (telle qu'utilisée dans l'invite de commande) : net session \\nom_ordi /delete /y
ProcessStartInfo infos = new ProcessStartInfo("net.exe","session \\\"+nom_pc+" /delete /y");

// permet de ne pas voir la fenetre apparaitre
infos.WindowStyle = ProcessWindowStyle.Hidden;

// lancement de la commande
Process proc = Process.Start(infos);

ensuite avec le proc on peut faire un kill, attendre que le programme ai été fermé avant d'aller plus loin dans le notre etc etc etc

Cocoricoooooooo !!!!
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
19 déc. 2003 à 11:32
J'oubliais : using System.Diagnostics; pour la classe Process

Cocoricoooooooo !!!!
0
XDOOM Messages postés 3 Date d'inscription vendredi 19 décembre 2003 Statut Membre Dernière intervention 21 décembre 2003
20 déc. 2003 à 10:18
J'ai essayé ton code, mais il ne fonctionne pas pour moi, ou alors je l'aie mal modifié.

Si je veux exécuter par exemple WinAmp.exe par une ligne de commande, commande je vais faire.
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
20 déc. 2003 à 12:11
eh ba G essayer pour winamp :

private void buttonLanceNormalement_Click(object sender, System.EventArgs e)
{
ProcessStartInfo startinfo = new ProcessStartInfo(@"C:\Musique video\Winamp\winamp.exe");
Process proc = Process.Start(startinfo);
}

private void buttonLancerAvecMp3_Click(object sender, System.EventArgs e)
{
ProcessStartInfo startinfo = new ProcessStartInfo(@"C:\Musique video\Winamp\winamp.exe", ""D:\\Musique\\!Vrac\\GITS Stand Alone Complex - Run Rabbit Junk.mp3"");
Process proc = Process.Start(startinfo);
}

sinon pour ce qui est de lancer par la ligne de commande le pb resterait entier vu que je passe aussi pour la classe process (cf mon exemple avec net.exe, applicable à cmd.exe)

PS : Pour info le @ sert à ne pas avoir à doubler les \
Je ne l'utilise pas pour le chemin d'accès au mp3 parce que C un parametre qui doit etre passé à winamp avec des ""
donc j'avais besoin du caractère spécial \ pour "

Cocoricoooooooo !!!!
0

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

Posez votre question
XDOOM Messages postés 3 Date d'inscription vendredi 19 décembre 2003 Statut Membre Dernière intervention 21 décembre 2003
21 déc. 2003 à 03:02
Merci coq ! Là ça fonctionne !

Ton exemple va m'être très précieux.
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
21 déc. 2003 à 10:38
L'autre aussi fonctionnais mais C vrai qu'il etait ptet un peu dur à capter en dehors de son contexte

Cocoricoooooooo !!!!
0
mookette Messages postés 21 Date d'inscription mardi 7 octobre 2003 Statut Membre Dernière intervention 4 février 2005
29 janv. 2004 à 14:43
J'ai éssayé de faire vos manips voila le résultat :

Une exception non gérée du type 'System.Security.SecurityException' s'est produite dans Module inconnu.

Informations supplémentaires : Échec de la demande.

Si qulqu'un a une solution :\
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
31 janv. 2004 à 14:20
donne un peu plus de details comme du code pck C un peu leger là la description du probleme

Cocoricoooooooo !!!!
0
mookette Messages postés 21 Date d'inscription mardi 7 octobre 2003 Statut Membre Dernière intervention 4 février 2005
31 janv. 2004 à 17:51
non c'ets bon c'était juste un prob d'administration du pc !
merci qd mm
0
michel_roger Messages postés 60 Date d'inscription lundi 6 octobre 2003 Statut Membre Dernière intervention 18 août 2006
8 sept. 2004 à 11:06
Bonjour, je cherche moi a récupérer la sortie standard de l'exe que je lance.
G tenté un StreamReader reader = infos.StandardOutput;
mais la exception non gérée...
Merci d'avance
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
8 sept. 2004 à 11:13
le nom de l'exception pourrait aider à cerner le probleme...

Cocoricoooooooo !!!!
0
michel_roger Messages postés 60 Date d'inscription lundi 6 octobre 2003 Statut Membre Dernière intervention 18 août 2006
8 sept. 2004 à 11:14
G finalement utilisé directement la classe Process. On peut régler les infos de départ sans créer de ProcessStartInfo.
De +, il fallait mettre un truc du genre WaitForExit() si on utilise le ReadToEnd().
0
cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
8 sept. 2004 à 11:15
hum je crois savoir : verifie que tu met bien ProcessStartInfo.RedirectStandardOutput à true

Cocoricoooooooo !!!!
0
cs_sambk Messages postés 4 Date d'inscription lundi 4 octobre 2004 Statut Membre Dernière intervention 8 avril 2005
8 avril 2005 à 14:21
j'essaye de ouvrire une application(l'exe) écrit en c# d'un autre ordi distant
qqu'un a une idée
bonjour a tous
0
cs_nitrique Messages postés 344 Date d'inscription jeudi 1 mai 2003 Statut Membre Dernière intervention 4 avril 2011 1
25 avril 2005 à 17:14
Salut mookette,

J'ai le même style d'erreur que toi:

Une exception non gérée du type 'System.Security.SecurityException' s'est produite dans ...

C'était quoi exactement ton pb d'administration ?

J'utilise des ocx pour attaquer le port série comme ça:
http://www.devhood.com/tutorials/tutorial_details.aspx?tutorial_id=320

AxInterop.MSCommLib.dll
Interop.MSCommLib.dll

Et lorsque je déplace mon projet sur un autre pc, il me met ce message d'erreur.

David, à VERSAILLES
0
Rejoignez-nous