2012-02-15 98 views
0

我有一个要求,可以从.NET代码打开并管理存储在文件系统中的Word文档。特别是,我希望能够显示一个对话框,并可能在用户关闭相关的Word文档时将其提交给服务器。打开Microsoft Word文档并检测它何时关闭

经过实验和搜索了一下,我不知道该如何继续。可能性包括:

  1. 使用Process.Start并侦听Exited事件。
  2. 使用Microsoft.Office.Interop.Word,然后通过该文档启动文档并侦听DocumentBeforeClose事件。

但是,这些似乎都不能完全解决问题。 (1),因为只有一个Word进程运行多个打开的文档,并且收到的Exited事件不一定对应于我的代码负责打开的实际文档。 (2)因为它无法应付Word崩溃的情况,并且正确地清理这些COM对象是一件麻烦事。

如果任何人有一个想法如何继续这一点,或一篇文章,将帮助,我将不胜感激。

回答

1

我在之前的工作中做过类似的工作,只是它来自网页。我所做的是将文档从网站下载到本地计算机,并且有一个新的工具栏。对于新的工具栏,我认为这是使用宏,所以编码是在VBScript中。我在该工具栏中有几个按钮将文档提交到服务器并更新数据库中的版本,并将文档保存在本地。实际上,由于您可以连接到数据库并在VBScript中使用FSO,因此您可以随心所欲地执行任何操作,包括验证文档当前是否由其他人打开等。

这只是一个正在工作的建议。也许你可以使用这个解决方案的一部分,并将其与你自己的混合,以找到一个令人满意的结果。

祝你好运

+0

谢谢DarkJaff。我想我已经找到了一种满足要求的方法,但实际上并没有做这个过程管理的东西,这很好,因为它看起来像一个棘手的问题。 我觉得你的答案相当不错,如果我要沿着这条路线走下去! – 2012-02-20 15:30:36