У меня есть приложение WinForms, где я предоставляю версионные ссылки на документы Word.Когда пользователь нажимает на ссылки, он открывает документ Word.Мои требования заключаются в том, чтобы открыть документ Word, внести изменения, сохранить, а затем закрыть документ, чтобы обнаружить внесенные изменения и загрузить копию с новой версией в базу данных.
В настоящее время я это сделалследующее:
ProcessStartInfo psi = new ProcessStartInfo(FilePath) { UseShellExecute = true };
Process process = Process.Start(psi);
process.EnableRaisingEvents = true;
process.Exited += process_Exited;
Кажется, что это должно работать хорошо, однако я столкнулся с несколькими проблемами:
- Пользователь может просто закрыть фактический документ, не закрывая Word исобытие Exited никогда не сработает.
- Если Word уже открыт, когда они щелкают ссылку, чтобы открыть документ, метод Process.Start возвращает значение NULL.
- Мой пользователь может закрыть приложение WinForms идокумент Word все еще можно оставить открытым.Это может быть проблематично, потому что пользователь может вносить изменения после закрытия приложения, и эти изменения не будут сохранены в базе данных.
Есть ли какие-либо другие варианты для достижения желаемых результатов?Кто-нибудь делал что-то подобное и может дать какие-либо указания для решения моих проблем?
Заранее благодарен за любую помощь.