WinForms - 处理Word文档关闭事件

时间:2010-12-03 13:59:45

标签: c# .net winforms c#-4.0 ms-word

我有一个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的情况下关闭实际文档,并且永远不会触发退出事件。
  2. 如果Word在单击链接以打开文档时已打开,则Process.Start方法将返回null。
  3. 我的用户可以关闭WinForms应用程序,Word文档可能仍然保持打开状态。这可能会有问题,因为用户可能会在关闭应用程序后进行更改,并且更改将不会持久保存到数据库中。
  4. 我还有其他选择可以达到我想要的效果吗?有没有人做过类似的事情,可以提供任何方向来解决我的问题?

    提前感谢您的任何帮助。

3 个答案:

答案 0 :(得分:1)

  1. 使用Microsoft.Office.Interop.Word

  2. (如果您的文档存储在中央位置)请尝试:FileSystemWatcher

答案 1 :(得分:0)

您可以为Word编写.NET插件。 这应该可以让你更多地控制Word中的事件。

答案 2 :(得分:0)

要处理“如果他们在关闭文档问题之前关闭我的应用”,

如果用户试图关闭windorm应用程序,而打开word文档:

创意1: 1.隐藏winform应用程序 2.文档关闭后,退出winform应用程序。

创意2: 1.显示一条消息,说明他们必须在关闭申请之前关闭word文档。

我必须更多地了解该软件的目的是什么才能使灵魂变得更好?