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

これは最適な選択ではないかもしれませんが、機能します。

  1. docファイルを開く前に、すべてのプロセスのpid(taskmgrのpidなど)を取得します。開いた各Wordファイルにはpidがあります。

  2. 今、スレッドを持って、これを一定の間隔でチェックしてください。pidがもう存在しない場合は、docファイルが閉じられます。

エレガントなソリューションではありませんが、私たちのプロジェクトでは機能します

于 2012-10-23T21:49:26.553 に答える
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

完全なコードソリューションを表示するためにこれを編集しています。これにより、アプリケーションも終了します。

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 に答える