amsga Ответов: 2

Как скрыть word и excel от отображения на экране в C#


Всем Привет,

Я пытаюсь скрыть Word и Excel от отображения, когда обрабатываю некоторые документы.
Я знаю, что он способен даже не отображаться на панели задач, а скрываться как процесс, но я не могу заставить его работать.
Я также не уверен, что создание таблиц excel или диаграмм также вызывает эту проблему.

Любой совет приветствуется.
Спасибо.

Что я уже пробовал:

Вот фрагмент кода, который у меня сейчас есть.
object missing = System.Reflection.Missing.Value;
            object readOnly = true;
            object addToRecentFiles = false;
            object visible = false;

            object filename = Path.Combine(Directory.GetCurrentDirectory(), "Lorem ipsum dolor sit amet.docx");

            Word.Application word = null;
            word = new Word.Application();
            word.Visible = false;

            Word.Documents documents = word.Documents;
            Word.Document doc = documents.Open(ref filename, ref missing, ref readOnly, ref addToRecentFiles, ref missing, ref missing, true, ref missing, ref missing, ref missing, ref missing, ref visible, ref missing, ref missing, ref missing, ref missing);
            doc.Activate();

2 Ответов

Рейтинг:
2

RDBurmon

попробуй вот так , это работает на меня

// Create an Application object

Microsoft.Office.Interop.Word.ApplicationClass ac = new Microsoft.Office.Interop.Word.ApplicationClass();

Microsoft.Office.Interop.Word.Application app = ac.Application;

app.DisplayAlerts = Microsoft.Office.Interop.Word.

WdAlertLevel.wdAlertsNone;

object filename = strFileName;

object missingValue = Type.Missing;

app.Visible = true;

Microsoft.Office.Interop.Word.

Document document = app.Documents.OpenOld(ref filename,ref missingValue, ref missingValue,ref missingValue, ref missingValue, ref missingValue,ref missingValue, ref missingValue, ref missingValue, ref missingValue);

app.Activate();

}


Maciej Los

OP пытается переместить фокус на документ, который размещен в невидимом приложении. Пожалуйста, смотрите мой ответ.

Рейтинг:
1

Maciej Los

Цитата:
Я знаю, что он способен даже не отображаться на панели задач, а скрываться как процесс, но я не могу заставить его работать.
Я также не уверен, что создание таблиц excel или диаграмм также вызывает эту проблему.


Извините, но вы ошибаетесь!
Вы не уточнили, что вы имеете в виду, говоря "кажется, я не могу заставить это работать"и вы не предоставили информацию о сообщении об ошибке. Тем не менее...
Причина, по которой вы не можете заставить его работать, совершенно очевидна... Проблема заключается в том, что лежит здесь:
doc.Activate();


Вы не можете активировать документ (переместить фокус на него), когда приложение хостинга невидимо. Удалите все строки, в которых используются методы: Activate() и Select() и все должно начать работать.