Получить активный текстовый объект документа C # - PullRequest
0 голосов
/ 21 января 2019

Я преобразую проект VB6 в C #, и мне нужно получить объект Active word document . В vb6 это просто с помощью

dim objWordDoc as Word.Document
set objWordDoc = Word.ActiveDocument

Мне нужно получить активный текстовый документ Word, используя C #. Я добавил ниже ссылки на проект

enter image description here

И добавил ссылки на класс как

using Word = Microsoft.Office.Interop.Word;
using Office = Microsoft.Office.Core;

Private Word.Document _activeDocument;

Есть ли какая-либо функция, подобная C #, для получения активного документа Word?

_activeDocument = Word.Application.ActiveDocument;

Пожалуйста, помогите мне с этим.

Заранее спасибо.

1 Ответ

0 голосов
/ 24 января 2019

Я нашел ответ.

object word;
Word.Document _activeDocument;

        try
        {
            word = System.Runtime.InteropServices.Marshal.GetActiveObject("Word.Application");
            //If there is a running Word instance, it gets saved into the word variable
        }
        catch (Exception ex)
        {
            //If there is no running instance, it creates a new one
            Type type = Type.GetTypeFromProgID("Word.Application");
            word = System.Activator.CreateInstance(type);
        }


        Word.Application oWord = (Word.Application) word;
        _activeDocument = oWord.ActiveDocument

Я использовал ответ в этом вопросе, чтобы найти это. Найти существующий экземпляр приложения Office

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...