我正在尝试使用Office Automation(PIA)将一些.pptx
文档转换为其他格式。但是,即使主窗口被隐藏,PowerPoint也会坚持显示进度条。
有什么方法可以阻止PowerPoint将任何Windows显示到主桌面?
额外信息:
我主要使用C#,COM PIA进行Office互操作。但我并不害怕深入研究C ++:P
我使用像这样的PIA启动PowerPoint
var app = new PowerPoint.Application();
var ppt = app.Presentations.Open("my.pptx");
// This line will show a progress dialog
ppt.SaveAs("out.pdf",
PowerPoint.PpSaveAsFileType.ppSaveAsPDF,
MsoTriState.msoTrue);
app.Quit();
答案 0 :(得分:3)
您可以在调用powerpoint进程之前使用CreateDesktop
调用来创建备用桌面。这将确保powerpoint创建的窗口不可见。但是,这里有一些警告:
您还可以尝试使用Windows Message Hook来确定窗口的创建时间并使其不可见。这也有一些警告:
答案 1 :(得分:1)
您可以尝试将Application.Visible
属性保留为默认值,并在打开演示文稿时将MsoTriState.msoFalse
传递给WithWindow
参数:
var application = new Application();
var document = application.Presentations.Open(fileName, MsoTriState.msoFalse, MsoTriState.msoFalse,
WithWindow: MsoTriState.msoFalse);
如果将Application.Visible
属性显式设置为MsoTriState.msoFalse
,则会收到“不允许隐藏应用程序窗口”错误。