2010-12-03 14 views
0

J'ai une application WinForms où je fournir des liens vers des documents Word versionnés. Lorsque l'utilisateur clique sur les liens, il ouvre le document Word. Mes exigences sont quand ils ouvrent le document Word, effectuer des modifications, enregistrer, puis fermez le document, pour détecter que les modifications ont été apportées et télécharger une copie avec une nouvelle version dans la base de données.WinForms - Mot poignée de documents Fermer l'événement

J'ai actuellement fait ce qui suit:

ProcessStartInfo psi = new ProcessStartInfo(FilePath) { UseShellExecute = true }; 
Process process = Process.Start(psi); 
process.EnableRaisingEvents = true; 
process.Exited += process_Exited; 

Cela semble que cela devrait fonctionner bien, cependant, je suis tombé sur quelques problèmes:

  1. L'utilisateur peut simplement fermer le document réel sans la fermeture de Word et de l'événement Exited ne se déclenchera jamais.
  2. Si Word est déjà ouvert lorsqu'ils cliquent sur le lien pour ouvrir le document, la méthode Process.Start renvoie null.
  3. Mon utilisateur peut fermer l'application WinForms et le document Word peut toujours rester ouvert. Cela peut être problématique car l'utilisateur peut apporter des modifications après la fermeture de l'application et les modifications ne seront pas conservées dans la base de données.

Existe-t-il d'autres options pour obtenir les résultats souhaités? Est-ce que quelqu'un a fait quelque chose de similaire et peut fournir n'importe quelle direction pour résoudre mes problèmes?

Merci d'avance pour toute assistance.

+0

Je pense que vous pourriez aussi bien essayer les bibliothèques de mots COM, je ne me souviens pas s'ils ont de tels événements que maintenant, mais il pourrait être utile de les vérifier. – Machinarius

Répondre

0

Vous pouvez écrire un plug-in .NET pour Word. Cela devrait vous donner beaucoup plus de contrôle sur les événements dans Word.

0

Pour faire face à la «s'ils ferment mon application avant la fermeture de la problème de document ",

SI l'utilisateur a essayé de fermer l'application Windorm alors que le document Word l'ouvre:

Idée 1: 1. Masquez la application Winform 2. Lorsque le document est fermé, puis quittez l'application Winform. Idée 2: 1. Afficher un message indiquant qu'ils doivent fermer le document Word avant de fermer l'application.

je dois en savoir plus sur ce que le but du logiciel est de faire une meilleure soultion