1

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

我的应用程序应该用于在大型电视上显示幻灯片,因此我希望有一个连续的幻灯片放映流(不闪烁)。我有一个事件(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();
4

1 回答 1

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;
于 2012-12-21T08:53:16.060 回答