如何使用com / ironPython隐藏PPT演示文稿

时间:2011-04-05 15:52:10

标签: ironpython powerpoint

当我尝试设置属性时:PowerPoint.ApplicationClass().Visible = False

我收到以下错误消息:

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

我在eggheadcafe发现了这个old thread。所以我按照这样的方式修改了我的代码:

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

但是,这只隐藏了演示文稿,但仍然打开了一个APPLICATION WINDOW。所以,基本上,PPT打开但内部没有任何演示。任何对这个谜团的帮助都将不胜感激。

3 个答案:

答案 0 :(得分:2)

这就是我想出来的。似乎到目前为止工作:

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

据我所知,你只能将“可见”设为等于真。如果你试图将它设置为False,它就会窒息。但是,如果要隐藏窗口,则不能将Visible设置为true,然后将withWindow设置为false。似乎Visible有第三个状态(例如,“undefined”或“default”),为了将WithWindow设置为False并且ppt应用程序保持关闭状态,必须显示该状态。

答案 1 :(得分:0)

WithWindow必须是msoFalse:

WithWindow: Microsoft.Office.Core.MsoTriState.msoFalse

答案 2 :(得分:0)

在C#中,您必须保留Application.Visible属性的默认值:

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

如果将Application.Visible属性显式设置为MsoTriState.msoFalse,则会收到“不允许隐藏应用程序窗口”错误。