C#powerpoint interop多个幻灯片放映

时间:2012-12-19 12:55:01

标签: c# interop slideshow powerpoint

我有一台将powerpoint导出到网络文件夹的服务器(我知道微软不推荐它,所以请多给我一些)

我的应用程序应该用于在大型电视上显示powerpoint,因此我希望连续的幻灯片幻灯片显示(没有闪烁)。 我有一个事件(FileSystemWatcher),它会在该文件夹上创建新文件时进行检查。如果是,则使用powerpoint打开并启动幻灯片放映。

问题是,如果我开始幻灯片放映而不考虑旧的,它可以很好地工作,短暂的打嗝但没有闪烁。然而,我有大量的powerpoint实例打开。

我尝试启动幻灯片放映并关闭旧实例,但是当我这样做时,新的幻灯片放映也会关闭/退出。

有什么建议吗?

工作的代码,但不是非常友好的....

PPT.Application oPpt = new PPT.Application();
PPT.Presentations oPresSet = oPpt.Presentations;
PPT.Presentation oPres = oPresSet.Open(e.FullPath, Microsoft.Office.Core.MsoTriState.msoTrue, Microsoft.Office.Core.MsoTriState.msoTrue, Microsoft.Office.Core.MsoTriState.msoTrue);
PPT.Slides oSlides = oPres.Slides;
PPT.SlideShowSettings objSSS = oPres.SlideShowSettings;

objSSS.Run();

1 个答案:

答案 0 :(得分:1)

找到解决方案(适用于powerpoint 2010) 首先开始演示1的幻灯片放映,然后我检索它的幻灯片视图。 为演示文稿2开始幻灯片放映,然后用幻灯片视图关闭演示文稿1的幻灯片放映,然后关闭演示文稿1的演示文稿。

在代码中(继续上面的代码)

objSSS.Run();
PPT.SlideShowView oSlideView = oPres.SlideShowWindow.View;


if (oldPPTPres != null && oldPPTView != null)
{
     oldPPTView.Exit();

     oldPPTPres.Close();
}

oldPPTView = oSlideView;
oldPPTPres = oPres;