Как скрыть презентацию PPT с помощью com / ironPython - PullRequest
2 голосов
/ 05 апреля 2011

Когда я пытаюсь установить свойство: PowerPoint.ApplicationClass().Visible = False

я получаю следующее сообщение об ошибке:

"Invalid request.  Hiding the application window is not allowed."

Я нашел эту старую нить в eggheadcafe.Поэтому я изменил свой код следующим образом:

com_ppt = self.com_app.Presentations.Open(filename, WithWindow = False)

Однако это только скрывает ПРЕЗЕНТАЦИЮ, но по-прежнему открывает ОКНО ПРИЛОЖЕНИЯ.Итак, в основном PPT открывается, но в нем нет презентации.Любая помощь в этой тайне будет принята с благодарностью.

Ответы [ 3 ]

2 голосов
/ 05 апреля 2011

это то, что я придумал.Кажется, до сих пор работает:

if self.isVisible:
    self.com_app.Visible = self.isVisible
com_ppt = self.com_app.Presentations.Open(filename, WithWindow = isVisible)

Насколько я могу судить, вы можете установить "Visible" равным true.Если вы попытаетесь установить его в False, он задыхается.Однако, если вы хотите скрыть окно, вы не можете установить для Visible значение true, а затем установить для withWindow значение false.Кажется, для Visible существует третье состояние (скажем, «undefined» или «default»), которое должно быть видимым, чтобы установить для WithWindow значение False И оставить приложение ppt закрытым.

0 голосов
/ 28 ноября 2018

В C # вы должны оставить свойство Application.Visible со значением по умолчанию:

var application = new Application();
var document = application.Presentations.Open(fileName, MsoTriState.msoFalse, MsoTriState.msoFalse, 
    WithWindow: MsoTriState.msoFalse);

Если вы явно установите для свойства Application.Visible значение MsoTriState.msoFalse, вы получите ошибку «Скрытие окна приложения запрещено».

0 голосов
/ 18 сентября 2015

WithWindow должно быть msoFalse:

WithWindow: Microsoft.Office.Core.MsoTriState.msoFalse
...