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

Windows Forms Discussion :

Récupérer le processus Word


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Août 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 4
    Par défaut Récupérer le processus Word
    Bonjour,
    j'ai besoin d'ouvrir des documents (entre autre des docx) par mon application.
    Je dois également attendre que word soit fermé pour déposer mon document sur un serveur.

    Pour cela j'utilise le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ProcessStartInfo psi = new ProcessStartInfo(@"C:\MonRep\toto.docx");
    Process p = Process.Start(psi);
    if (p != null) p.WaitForExit();

    Mon problème:
    Si Word est fermé, tout est ok et ma variable p est bien mon processus
    Si Word est ouvert, p vaut null.

    J'utilise Word 2007.
    Si quelqu'un a une idée ...

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 198
    Par défaut
    tu peux avoir la liste des processus en cours, il suffit de rechercher selon le name
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 4
    Par défaut
    J'y avais pensé mais le problème c'est que tant que l'utilisateur ferme pas tous ses documents, le WaitForExit() se terminera pas.

    J'ai également oublié de préciser que cette application ne se cantonne pas aux documents Words mais également pdf, xls, xslx, jpg, etc...

    Adopter cette solution me ferait avoir un switch énorme et pas très souple (ex: demain les fichiers word 2009 sont des .docw, j suis obligé de retoucher le programme et mettre à jours tous mes clients ...)
    L'idéal serait de forcer l'application à se lancer dans un processus différent et indépendant ... mais comment faire c'est la tout mon problème...

    Merci de ta réponse qd même =)

    edit: à priori seuls les produits office sont concernés ...

  4. #4
    Membre à l'essai
    Inscrit en
    Août 2008
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 4
    Par défaut
    ouf je viens de trouver ...
    bon en fait en passant par l'automation word ca fait exactement ce que je veux.

    si jamais quelqu'un a le même problème, je poste mon code:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    using wd=Microsoft.Office.Interop.Word;
     
    ...
     
    object missing = System.Reflection.Missing.Value;
    object fichier = @"c:\monrep\toto.docx";
     
    wd::ApplicationClass wa = new wd::ApplicationClass();
    wa.Visible = true;
     
    wd::Document doc = wa.Documents.Open(ref fichier, ref missing, ref missing,
                    ref missing, ref missing, ref missing,
                    ref missing, ref missing, ref missing,
                    ref missing, ref missing, ref missing,
                    ref missing, ref missing, ref missing,
                    ref missing);
     
    wa.ApplicationEvents2_Event_Quit +=
    new wd::ApplicationEvents2_QuitEventHandler(wa_ApplicationEvents2_Event_Quit);
     
    ...
     
    void wa_ApplicationEvents2_Event_Quit()
    {
        <traitement de la fermeture>
    }

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

Discussions similaires

  1. Récupérer un processus word existant en VBS
    Par kracter56 dans le forum VBScript
    Réponses: 2
    Dernier message: 15/04/2013, 15h36
  2. Récupérer un fichier Word 2007 écrasé par erreur
    Par gastondefer3 dans le forum Word
    Réponses: 5
    Dernier message: 19/11/2009, 13h49
  3. [XL-2003] Fermeture de Processus Word via Macro VBA Excel
    Par ted the Ors dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 30/10/2009, 19h46
  4. Agir sur un processus word
    Par zlink17 dans le forum VB.NET
    Réponses: 1
    Dernier message: 19/10/2008, 21h44
  5. Récupérer fichier Macro word 2007
    Par djbobo27 dans le forum VBA Word
    Réponses: 1
    Dernier message: 02/09/2008, 18h28

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