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:
- 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.
- Si Word est déjà ouvert lorsqu'ils cliquent sur le lien pour ouvrir le document, la méthode Process.Start renvoie null.
- 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.
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