IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

fermer un fichier excel lance par une commande dos


Sujet :

C#

  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 21
    Points : 8
    Points
    8
    Par défaut fermer un fichier excel lance par une commande dos
    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 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    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 reponses.

  2. #2
    Membre extrêmement actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Points : 1 173
    Points
    1 173
    Par défaut
    tu récupères le process excel et tu le kill (pas très bien)

  3. #3
    Futur Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 21
    Points : 8
    Points
    8
    Par défaut
    Ben c'est ce que je voulais faire mais je sais pas comment récupérer le processus lancé par une commande, je sais fermer le processus quand c'est mois qu'il l'a lancé.
    Je suis qu'un débutant en c# donc si tu peux m'expliquer un peu plus, je t'en remercierais.
    Merci d'avance

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 499
    Points : 218
    Points
    218
    Par défaut
    Salut,

    avec Process.GetProcesses() du namespace System.Diagnostics (il me semble)
    tu récupères tous les processus en cours,
    t'as plus qu'à chercher ton excel
    ...

  5. #5
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    salut

    remarques "toute" conne : Pourquoi lancer excel via un bat alors qu'avec les options et argument de la classe Process (que tu utilises d'ailleurs), tu pourrais le faire sans soucis et en plus, garder un objet sur ce process ?

    Autant le GetProcess() pour killer, ok quand tu n'as pas lancer l'application, mais là, tu essayes de killer une application que tu as lancé et du fait que tu t'y prends "curieusement", tu perds l'interet de l'avoir lancé toi même

    Fais ce que je te dis, ca sera plus simple (sauf si vraiment tu es FORCE par le coté obscur d'un chef de faire ainsi )

    The Monz, Toulouse

  6. #6
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    Re :
    cela dit, vu que excel lance une macro "automatique", pourquoi ne pas faire quitter l'application dans la macro ?

    The Monz, Toulouse

  7. #7
    Futur Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 21
    Points : 8
    Points
    8
    Par défaut
    Citation Envoyé par theMonz31 Voir le message
    Re :
    cela dit, vu que excel lance une macro "automatique", pourquoi ne pas faire quitter l'application dans la macro ?

    The Monz, Toulouse
    Ben justement, j'ai pensé a faire cela, mais ça marche pas avec ma Macro vu que je travail dans un serveur d'entreprise qui apparemment bloque cette manipulation.
    Sinon, j'utilise un .bat, parce que quand j'ouvre mon fichier excel avec la méthode normal, il ouvre le fichier mais la macro automatique ne s'exécute pas.

  8. #8
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    dans ce cas, te reste plus que le GetProcess et le kill...

    Cela dit, il faut que tu connaisses le temps de "traitement" de ta macro car si tu tues l'application avant que la macro soit exécutée

    The Monz, Toulouse

  9. #9
    Futur Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 21
    Points : 8
    Points
    8
    Par défaut
    Justement c'est ça le probleme, mais en fait je sais pas trop comment utiliser la fonction GetProcession() , si j'ai bien compris elle permet de récupérer tous les processus existant mais comment lui préciser celui que je veux fermer parmis d'autre s'il y en a ?

  10. #10
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    avec GetProcess, tu vas récupérer un process...

    Classe Process

    Genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Process [] pro = Process.GetProcessesByName("excel");
    if(pro.Length > 0)
    {
       pro[0].Kill();
    }
    et basta

    The Monz, Toulouse

  11. #11
    Futur Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 21
    Points : 8
    Points
    8
    Par défaut
    ok
    Merci beaucoup

  12. #12
    Membre extrêmement actif Avatar de fally
    Homme Profil pro
    Développeur .Net / BI
    Inscrit en
    Novembre 2007
    Messages
    966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Bénin

    Informations professionnelles :
    Activité : Développeur .Net / BI

    Informations forums :
    Inscription : Novembre 2007
    Messages : 966
    Points : 1 173
    Points
    1 173
    Par défaut
    Juste que si l'utilisateur a d'autres fichiers excel ouverts, eh ben.... mais bon, c'est pas bien grave

  13. #13
    Futur Membre du Club
    Inscrit en
    Octobre 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 21
    Points : 8
    Points
    8
    Par défaut
    Oui c ce que je viens de remarquer, mais bon de toute façon j'ai pas le choix .
    Merci pour vos réponses

  14. #14
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 194
    Points
    5 194
    Par défaut
    salut

    beh si, tu "peux" avoir le choix... mais c'est "tordu"

    Avec le GetProcesses() tu vas avoir tous les processus Excel : OK !

    Maintenant, tu peux utiliser des méthodes de process pour obtenir le nom de la fenetre... ainsi, tu "pourrais" comparer si le nom de la fenetre correspond à celui que tu "escomptes" et donc, par la même filtrer et ne virer que l'excel qui te concerne

    Je sais, c'est un peu "tiré" par les cheveux

    Cela dit, tu peux aussi, juste avant de lancer ton bat, faire un GetProcessesByName() avec excel (comme tu fais), mémoriser cette liste et une fois ton process avec macro lancé et prêt à tuer, refaire un GetProcessesByName() , comparer et virer celui qui ne figurait pas dans la premiere liste (avec le "risque") qu'un excel autre est été lancé entre les 2 récupérations des processes excel

    Voila , 2 idées comme cela en passant rapidement !

    Bonne soirée

    The Monz, Toulouse

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2007] Importer un fichier excel généré par une application intranet
    Par Debutant10 dans le forum VBA Access
    Réponses: 23
    Dernier message: 13/09/2016, 20h34
  2. Réponses: 2
    Dernier message: 30/04/2010, 10h11
  3. Fichier de log pour une commande DOS
    Par Grulf dans le forum Windows XP
    Réponses: 3
    Dernier message: 16/04/2009, 18h05
  4. Réponses: 2
    Dernier message: 11/09/2008, 13h49
  5. remplacement carré par ; dans un fichier excel crée par une macro
    Par om51ft dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 22/11/2007, 16h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo