Fermer un processus lance par une commande dos [Résolu]

Messages postés
18
Date d'inscription
vendredi 1 février 2008
Dernière intervention
10 mars 2009
- - Dernière réponse : rabixpvb
Messages postés
35
Date d'inscription
jeudi 4 novembre 2004
Dernière intervention
5 juillet 2013
- 19 juil. 2011 à 18:38
Bonjour,

J'ai fait un programme en c# pour lancer une commande dos (dans un fichier .bat) pour ouvrir un fichier excel et j'aimerais bien fermer le fichier excel ainsi que la fenêtre dos après l'exécution d'une macro automatique que j'ai dans mon excel.
Voila le code que j'ai fait :

private void button1_Click(object sender, EventArgs e)
        {
            System.Diagnostics.ProcessStartInfo lancer_bat = new System.Diagnostics.ProcessStartInfo();
        
            lancer_bat.FileName = @"D:\Documents\Visual Studio 2008\Projects\ENDK\Lancer_commande.bat";
           
            System.Diagnostics.Process.Start(lancer_bat);
            }

      
Merci pour vos reponse.
    

      
   
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
71
Date d'inscription
vendredi 30 mai 2008
Dernière intervention
18 mai 2011
3
Merci
Le mieux c'est de mettre le using System.Diagnostics
de declarer un objet process, et tu pourra le fermer avec la commande .close()

comme ceci :

using System.Diagnostics;

            //Création de ton objet
            Process o_Dos;                      
      
           //tu instancies et tu configures tes paramètres
            o_Dos = new Process();
            o_Dos.StartInfo.FileName = "tonfichier.bat";
            o_Dos.StartInfo.RedirectStandardOutput = true;
            o_Dos.StartInfo.RedirectStandardInput = true;
            o_Dos.StartInfo.UseShellExecute = false;
            o_Dos.StartInfo.CreateNoWindow = true;
            //Tu lances ton process

            o_Dos.Start();  
              
            /* tu fais ton traitement*/

          //Et tu fermes
            o_Dos.Close();

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 99 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Zakki49
Messages postés
71
Date d'inscription
vendredi 30 mai 2008
Dernière intervention
18 mai 2011
3
Merci
Mais l'excel.exe, tu lelance avec ton fichier .bat non?

Pourquoi ne pas killer le process via celui-ci?
puisque de toute façon tu ce que lance ton process c'est que ton fichier bat

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 99 internautes nous ont dit merci ce mois-ci

Commenter la réponse de Zakki49
Messages postés
357
Date d'inscription
jeudi 8 juin 2006
Dernière intervention
26 décembre 2011
3
Merci
Salut,

N'oubliai pas "Réponse accepter" si la réponse te convient

A+

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 99 internautes nous ont dit merci ce mois-ci

Commenter la réponse de xmox667
Messages postés
357
Date d'inscription
jeudi 8 juin 2006
Dernière intervention
26 décembre 2011
0
Merci
Salut,
Peut devrait lancer et arrêter Excel directement sans passer par un fichier Bat.
Ce lien pourrait t'aider [http://www.vbfrance.com/codes/DEMARRER-ARRETER-APPLICATION_39471.aspx [Lien]]
http://www.vbfrance.com/codes/DEMARRER-ARRETER-APPLICATION_39471.aspx
A+
 
Commenter la réponse de xmox667
Messages postés
18
Date d'inscription
vendredi 1 février 2008
Dernière intervention
10 mars 2009
0
Merci
Bonjour,
merci pour vos réponses, zakki49, en fait j'avais fait la même chose que ce que tu m'a dit mais j'arrive toujours pas a fermer l'excel.exe.
J'ai essayé la fonction .kill , ça ferme l'application mais  avant que la macro automatique ne s'exécute.
Commenter la réponse de decoalaa
Messages postés
35
Date d'inscription
jeudi 4 novembre 2004
Dernière intervention
5 juillet 2013
0
Merci
using System.Diagnostics;

foreach (Process clsProcess in Process.GetProcesses())
{
if (clsProcess.ProcessName.StartsWith("excel")||clsProcess.ProcessName.StartsWith("cmd"))
clsProcess.Kill();
}
// Tuera tous les cmd (donc les bats) ainsi que l'excel


rabix
Commenter la réponse de rabixpvb

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.