Сведения о вопросе

ЧОВИД

21:06, 1st October, 2020

Теги

c#   interop   ms-office    

Как остановить появление компонента MS Graph во время Interop?

Просмотров: 470   Ответов: 1

При использовании Office Interop в C#, при вставке объекта диаграммы в документ MS Word приложение Grap загружается очень быстро, а затем исчезает. Есть ли способ предотвратить это? Я попытался установить свойство Visible экземпляра приложения в значение false без эффекта.

EDIT: свойство Visible вступает в силу, когда используется против Word при interopping,и оно не появляется. Я ожидал бы, что есть аналогичный способ сделать это для MS Graph.



  Сведения об ответе

DINO

00:29, 12th August, 2020

Это обычное поведение для большого количества компонентов, размещенных в исполняемом двоичном файле. Хост-приложение запустится, а затем выполнит задание. Я не знаю, есть ли верный способ предотвратить это, поскольку у вас нет контроля над компонентом или над процессом, пока приложение не будет запущено и не ответит.

Хак, который я пробовал в прошлом (для чего-то совершенно не связанного), запускал процесс и постоянно обнаруживал, был ли создан его основной windows. Как только он был создан, я его прятал. Вы можете сделать это с помощью основного модуля неисправного приложения и надеяться, что это будет достаточно быстро, чтобы скрыть окно до того, как пользователь заметит. Затем вы создаете экземпляр своего компонента; компонент обычно перерабатывает существующий процесс, надеясь, что он имеет скрытое главное окно.

Я не могу гарантировать, что это сработает в вашей ситуации, но стоит попробовать, что проблема настолько важна, или если вы не найдете лучшего способа, конечно.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться