我有一个C#应用程序,它运行在连接到我们自助餐厅大型显示器的计算机上。该应用程序从文件夹中提取所有PowerPoint文件,并以幻灯片形式连续运行每个文件。一切都工作正常,直到有人决定将一个影片剪辑插入幻灯片。问题是电影永远不会开始。如果在PowerPoint中打开演示文稿并运行它可以正常运行,如果我右键单击演示文稿并单击“显示”它就可以工作。这是我用来打开演示文稿并开始播放幻灯片的代码。
pres = app.Presentations.Open(pptPath, MsoTriState.msoTrue, MsoTriState.msoTrue, MMsoTriState.msoFals);
pres.SlideShowSettings.Run();
我还需要设置其他内容才能让Run()
方法启动电影吗?
编辑:有问题的演示文稿中只有一张包含电影的幻灯片。如果我添加了另一张幻灯片,它工作正常。还尝试过添加幻灯片并遇到同样的问题,所以显然问题只存在于演示文稿的最后一张幻灯片中。
答案 0 :(得分:1)
这里的主要问题是PowerPoint动画(视频,音频,自定义动画路径等)仅在SlideShowWindow
具有焦点时才会播放。这意味着当您运行应用程序并启动PPT时,您的应用程序仍会保持焦点,因此动画不会运行(但这并不会阻止您手动操作正在运行的平台)。
有几种解决方法:
SetWindow
把你的SlideShowWindow
带到
面前。这不是一个好方法
我的意见。答案 1 :(得分:-2)
发现问题。我在演示文稿的thread.sleep
事件处理程序中有一个app_SlideShowNextSlide
语句,用于处理一个幻灯片的结束并开始下一个幻灯片。我当时没有想到这个代码是在幻灯片本身的同一个线程中运行的。我创建了一个计时器对象,并将必要的代码移动到计时器的elapsed
事件处理程序中。