2010-07-09 6 views
1

Je veux ouvrir un fichier Word depuis mon application Windows en C#. Sur le bouton bouton, cliquez sur J'ai appelé Process.start() avec le nom de fichier "Test.doc". Le nom du fichier varie en fonction de la situation.comment détecter MSword est ouvert avec un fichier spécifique?

Maintenant autant de fois que je clique sur le bouton Processus commencé avec le même fichier, il a démarré beaucoup d'instance de mot. Je veux qu'il ouvre une seule instance pour le même fichier, et si le nom du fichier change, alors ouvrez une nouvelle instance.

Alors, comment puis-je détecter ce mot est ouvert avec un nom de fichier?

Merci

Répondre

1

Utilisez une liste qui conserve les pistes des processus en cours d'exécution. Alors:

List<Process> processes = new List<Process>(); 

Lorsque vous cliquez pour ouvrir le fichier:
a) assurez-vous que la liste ne contient pas un processus avec votre nom de fichier. (parcourez la liste puis regardez process.Filename et comparez-le au fichier que vous voulez ouvrir)
b) si ce n'est pas le cas, ajoutez votre processus à la liste, puis démarrez le processus.

Ensuite, utilisez

http://msdn.microsoft.com/en-us/library/system.diagnostics.process.exited.aspx

Pour savoir si le processus est terminé. Quand il se termine, débarrassez-vous de votre liste de processus.

+0

bon, vérifions .. – prashant

+0

Je veux fermer toutes les instances de mot ouvertes à partir de l'événement Form closed. Je itère tous les processus et les tue mais quand j'ouvre le même fichier dans le mot il montre une option de récupération. de toute façon merci – prashant

+0

je l'ai eu comment fermer le processus. – prashant

Questions connexes