1

我需要从我的 VB 2010 应用程序中打开现有的 Word 文档,并检测用户何时关闭文档以便将该文档复制到数据库,无论用户是否修改它。我该如何做到这一点?谢谢。

例子:

'Code here
Dim word as New Word.Application()
Dim doc as New Word.Document()

'open the document here and let the user work on the word document
'detect when user has closed Word
'copy the word document into database
4

3 回答 3

1

我正在编辑它以显示完整的代码解决方案,这也会终止应用程序。

Imports Microsoft.Office.Interop

Class MainWindow
    Private WithEvents doc As Word.Document
    Private app As New Word.Application
    Public Sub New()

        InitializeComponent()

        app.Visible = True
        app.Documents.Add()
        doc = app.Documents(1)
        doc.Activate()
    End Sub

    Private Sub doc_Close() Handles doc.Close
        app.Quit()
    End Sub
End Class
于 2012-10-23T21:21:04.513 回答
1

这是有关如何创建新文档的示例。也许这会让你开始?

http://support.microsoft.com/kb/316383

另一个很好的例子:

http://www.codeproject.com/Articles/55685/Word-Automation-using-VB-NET-Part-I

于 2012-10-23T20:13:15.213 回答
1

这将起作用,尽管它可能不是最佳选择:

  1. 在打开 doc 文件之前,获取所有进程的 pid(如 taskmgr 中的 pid)。每个打开的word文件都有一个pid。

  2. 现在,有一个线程,每隔一段时间检查一次,如果 pid 不再存在,则关闭 doc 文件。

不是一个优雅的解决方案,但它适用于我们的项目

于 2012-10-23T21:49:26.553 回答