Fermer un processus lance par une commande dos

Résolu
decoalaa Messages postés 18 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 10 mars 2009 - 14 oct. 2008 à 16:21
rabixpvb Messages postés 34 Date d'inscription jeudi 4 novembre 2004 Statut Membre 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.
    

      
   

6 réponses

Zakki49 Messages postés 71 Date d'inscription vendredi 30 mai 2008 Statut Membre Dernière intervention 18 mai 2011
15 oct. 2008 à 18:00
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();
3
Zakki49 Messages postés 71 Date d'inscription vendredi 30 mai 2008 Statut Membre Dernière intervention 18 mai 2011
16 oct. 2008 à 13:23
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
3
xmox667 Messages postés 357 Date d'inscription jeudi 8 juin 2006 Statut Membre Dernière intervention 26 décembre 2011 4
19 oct. 2008 à 08:43
Salut,

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

A+
3
xmox667 Messages postés 357 Date d'inscription jeudi 8 juin 2006 Statut Membre Dernière intervention 26 décembre 2011 4
15 oct. 2008 à 08:07
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+
 
0

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

Posez votre question
decoalaa Messages postés 18 Date d'inscription vendredi 1 février 2008 Statut Membre Dernière intervention 10 mars 2009
16 oct. 2008 à 10:38
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.
0
rabixpvb Messages postés 34 Date d'inscription jeudi 4 novembre 2004 Statut Membre Dernière intervention 5 juillet 2013
19 juil. 2011 à 18:38
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
0
Rejoignez-nous