WinForms - обрабатывать событие закрытия документа Word - PullRequest
0 голосов
/ 03 декабря 2010

У меня есть приложение WinForms, где я предоставляю версионные ссылки на документы Word.Когда пользователь нажимает на ссылки, он открывает документ Word.Мои требования заключаются в том, чтобы открыть документ Word, внести изменения, сохранить, а затем закрыть документ, чтобы обнаружить внесенные изменения и загрузить копию с новой версией в базу данных.

В настоящее время я это сделалследующее:

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

Кажется, что это должно работать хорошо, однако я столкнулся с несколькими проблемами:

  1. Пользователь может просто закрыть фактический документ, не закрывая Word исобытие Exited никогда не сработает.
  2. Если Word уже открыт, когда они щелкают ссылку, чтобы открыть документ, метод Process.Start возвращает значение NULL.
  3. Мой пользователь может закрыть приложение WinForms идокумент Word все еще можно оставить открытым.Это может быть проблематично, потому что пользователь может вносить изменения после закрытия приложения, и эти изменения не будут сохранены в базе данных.

Есть ли какие-либо другие варианты для достижения желаемых результатов?Кто-нибудь делал что-то подобное и может дать какие-либо указания для решения моих проблем?

Заранее благодарен за любую помощь.

Ответы [ 3 ]

1 голос
/ 03 декабря 2010
  1. Работа с Microsoft.Office.Interop.Word

  2. (если ваш документ хранится в центральном месте) попробуйте: FileSystemWatcher

0 голосов
/ 03 декабря 2010

Чтобы справиться с вопросом «если они закрывают мое приложение перед тем, как закрыть проблему с документом»,

ЕСЛИ пользователь пытался закрыть приложение windorm во время открытия документа word:

Идея 1: 1. Скрыть приложение winform 2. Когда документ будет закрыт, выйдите из приложения winform.

Идея 2: 1. Покажите сообщение, в котором говорится, что они должны закрыть слово document до закрытия приложения.

Мне нужно было бы узнать больше о том, какова цель программного обеспечения, чтобы сделать лучшую душу

0 голосов
/ 03 декабря 2010

Вы можете написать плагин .NET для Word. Это должно дать вам гораздо больше контроля над событиями в Word.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...