Несколько ссылок Word2007 в таблице запущенных объектов - PullRequest
1 голос
/ 21 июня 2010

В отличие от более ранних версий (см. здесь ), я обнаружил, что Word2007 помещает одну запись в таблицу запущенных объектов для каждого запущенного экземпляра WinWord.exe. (Используя IROTVIEW.exe, поставляемый с MS VC 6.0!)
Я пытаюсь создать приложение, которое автоматизирует Word, и я хотел бы, чтобы скрытый экземпляр Word был недоступен для пользователя, одновременно сосуществуя с отдельным видимым экземпляром. Есть ли способ запретить Word регистрироваться в ROT или, наоборот, гарантировать, что когда пользователь дважды щелкает документ Word, это видимый экземпляр, который открывает документ?

Подумав, возможно, мне следует задать другой вопрос: при трансляции сообщения DDE и нескольких окон с правильным именем приложения, что определяет, какое окно получает для обработки сообщения первым? Я спрашиваю, потому что я понимаю, что сопоставление файлов для doc, расширений docx и т. Д. Указывает, что DDE будет использоваться для открытия документа.

1 Ответ

1 голос
/ 24 июля 2010

Может быть, я не понимаю вопроса, но невидимый экземпляр скрыт для всех практических целей. Пользователь не сможет открыть этот экземпляр или любые связанные с ним документы.

Public Sub Test()
    Dim currentDocument As Document

    Dim i As Long
    For i = 1 To 3
        Dim newApplication As Word.Application
        Set newApplication = CreateObject("Word.Application")
        Set currentDocument = newApplication.Documents.Add
        currentDocument.Range.InsertAfter "New instance " & i

        If i = 2 Then
            currentDocument.Windows(1).Visible = False
        Else
            currentDocument.Windows(1).Visible = True
        End If
    Next
End Sub
...