2010-12-03 67 views
0

我有一个WinForms应用程序,我提供版本链接Word文档。当用户点击链接时,它将打开Word文档。我的要求是,他们打开Word文档,执行更改,保存并关闭文档,以检测已做出的更改并将带有新版本的副本上载到数据库。的WinForms - 处理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文档可能仍处于打开状态。这可能会造成问题,因为用户可能会在关闭应用程序后进行更改,并且更改不会持久保存到数据库。

是否有我实现我想要的结果的任何其他的选择吗?有没有人做过类似的事情,可以提供任何方向来解决我的问题?

感谢您的任何援助。

+0

我想你不妨试试的话COM库,我不记得,如果他们有这样的活动,截至目前,但它可能是值得检查出来的。 – Machinarius 2010-12-03 14:05:22

回答

0

你可以写一个.NET插件的Word。 这应该会让你更好地控制Word中的事件。

0

为应对“,如果他们收我的应用程序,他们关闭之前文档问题“,

如果用户试图关闭该文件时打开该文档,则会关闭该应用程序:

理念1: 1.隐藏winform应用程序 2.当文件被关闭时,然后退出winform应用程序。

理念2: 1.展会,指出他们必须先关闭Word文档,以关闭应用程序的消息。

我必须多了解一下该软件的目的是为了创造一个更美好soultion