首页 文章

C#powerpoint interop多个幻灯片放映

提问于
浏览
1

我有一个服务器将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 回答

  • 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;
    

相关问题