Как заставить fre sh и независимый экземпляр Word - PullRequest
0 голосов
/ 29 января 2020

Каким бы способом вы ни открывали Word (Excel et c.) Я стремлюсь к тому, чтобы экземпляр был «безопасным» и независимым. Под этим я подразумеваю, что если у пользователя в настоящий момент открыто окно Word, это не взаимодействует с тем, что открывает мое программное обеспечение, и что оба windows могут работать независимо друг от друга.

Лучший способ чтобы описать это, нужно щелкнуть правой кнопкой мыши Word или Excel на панели задач и открыть новое окно Word (или Excel) (в отличие от открытия файла). Каждый раз, когда вы делаете это, вы, кажется, получаете полный и независимый экземпляр.

Может показаться, что следующий код:

        Dim wdApp As Word.Application
        Dim oDoc As Word.Document
        wdApp = CreateObject("Word.Application")

... откроется в существующем окне, если Word в настоящее время работает на P C. Как заставить fre sh и независимый экземпляр Word?

1 Ответ

0 голосов
/ 30 января 2020

Использование New Word.Application предпочтительнее, если в проекте есть ссылка на API Word. Исходя из примера кода в вопросе, это будет иметь место в этом случае.

Другой возможностью будет создание нового Process и подключение к нему. В этом случае ссылка на API-интерфейсы Word не требуется (поздняя привязка).

    Dim wdApp As Word.Application = New Word.Application()
    Dim oDoc As Word.Document = wdApp.Documents.Add() 'or wdApp.Documents.Open(filepath)

CreateObject не следует использовать существующее окно, только GetObject сделает это. Если предположить, что утверждение в вопросе не может быть подтверждено (я никогда не видел его более тридцати лет), тогда CreateObject также возможно для запуска нового экземпляра приложения Office. Это также не потребует ссылки на API-интерфейсы Word.

Что касается топики c поддержки независимого экземпляра приложения Office: вы также можете обратиться к этому ответу SO .

...