Commande pour exécuter un programme en dehord de C#
XDOOM
Messages postés3Date d'inscriptionvendredi 19 décembre 2003StatutMembreDernière intervention21 décembre 2003
-
19 déc. 2003 à 04:25
cs_nitrique
Messages postés344Date d'inscriptionjeudi 1 mai 2003StatutMembreDerniè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);
>>
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 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
cs_coq
Messages postés6349Date d'inscriptionsamedi 1 juin 2002StatutMembreDernière intervention 2 août 2014101 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 !!!!
Vous n’avez pas trouvé la réponse que vous recherchez ?
michel_roger
Messages postés60Date d'inscriptionlundi 6 octobre 2003StatutMembreDernière intervention18 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
michel_roger
Messages postés60Date d'inscriptionlundi 6 octobre 2003StatutMembreDernière intervention18 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().