我创建了一个使用Word.Application
打开Word文档的窗体,代码正常工作,我能够查看,编辑和保存文档。当在我的应用程序中运行Word应用程序的实例时,无法关闭Word
问题是,当我打开另一个Microsoft Word实例(我的应用程序外),字实例在同一WINWORD.exe
进程打开了,我的意思是,只有一个WINWORD.exe
在任务管理器进程过程中无论有多少字情况下,我打开,因此,应用程序外部的单词实例无法关闭(使用X按钮,File => Close或Alt + F4),除非关闭应用程序中的单词实例,否则无法关闭该实例。
我不知道它为什么在我的应用程序创建的同一个过程中打开,它将新打开的单词实例视为我的Word应用程序对象的文档(但是它会在我的应用程序之外的新词窗口中打开) ,所以你不能关闭文档而不关闭主应用程序对象。
这里是我使用加载Word应用程序我的表单里面的代码:
Public Sub LoadDocument(ByVal t_filename As String)
filename = t_filename
If wd Is Nothing Then
wd = New Word.Application()
End If
Try
wd.CommandBars.AdaptiveMenus = False
Catch
End Try
If wordWnd = 0 Then
wordWnd = FindWindow("Opusapp", wd.Caption)
End If
If wordWnd <> 0 Then
SetParent(wordWnd, Me.Handle.ToInt32())
Dim newTemplate As Object = False
Dim docType As Object = 0
Dim [readOnly] As Object = True
Dim isVisible As Object = True
Dim missing As Object = System.Reflection.Missing.Value
Try
If wd Is Nothing Then
Throw New WordInstanceException()
End If
If wd.Documents Is Nothing Then
Throw New DocumentInstanceException()
End If
If wd IsNot Nothing AndAlso wd.Documents IsNot Nothing Then
'Dim HearingTemplet As Word.Template = wd.NormalTemplate
Dim d As Word.Documents = wd.Documents
document = d.Add(fileName, True, docType, isVisible)
document.ShowGrammaticalErrors = False
document.ShowRevisions = False
document.ShowSpellingErrors = False
document.Application.Visible = False
document.Application.Options.SuggestSpellingCorrections = False
document.Application.Options.CheckGrammarAsYouType = False
document.Application.Options.CheckSpellingAsYouType = False
document.Application.Options.CheckGrammarWithSpelling = False
document.SaveAs(fileName)
End If
Catch
End Try
Try
wd.ActiveWindow.DisplayRightRuler = False
wd.ActiveWindow.DisplayScreenTips = False
wd.ActiveWindow.DisplayVerticalRuler = False
wd.ActiveWindow.DisplayRightRuler = False
wd.ActiveWindow.ActivePane.DisplayRulers = False
wd.ActiveWindow.Caption = ""
wd.Options.SaveInterval = 0
wd.Options.AllowFastSave = False
wd.ActiveWindow.Document.ReadOnlyRecommended = True
wd.ActiveWindow.Split = False
wd.Application.DisplayRecentFiles = False
wd.ActiveWindow.ActivePane.View.Type = WdViewType.wdNormalView
wd.ActiveWindow.ActivePane.View.Type = WdViewType.wdPrintView
Catch
End Try
Try
wd.Visible = True
wd.Activate()
Catch
End Try
End If
End Sub
PS:发生问题,不管有多少字情况下打开,所有的人都被打开在同一个过程中,所有这些都被视为我的单词应用程序的文档,除非我关闭我的表单中的Word应用程序,否则我无法关闭它们中的任何一个。
感谢埃里克,但我已经尝试过,但没有成功。 –