代码之家  ›  专栏  ›  技术社区  ›  AdmSteck

PowerPoint SlideShowSettings.Run()不运行嵌入的视频

  •  0
  • AdmSteck  · 技术社区  · 16 年前

    我有一个C应用程序,它运行在一台连接到自助餐厅大型显示器的计算机上。该应用程序将所有PowerPoint文件从一个文件夹中拉出,并将每个文件作为幻灯片连续运行。一切正常,直到有人决定在幻灯片上插入电影剪辑。问题是电影永远不会开始。如果在PowerPoint中打开演示文稿并运行“显示它工作正常”,并且右键单击该演示文稿并单击“显示”它工作正常。这是我用来打开演示文稿并开始幻灯片放映的代码。

    pres = app.Presentations.Open(pptPath, MsoTriState.msoTrue, MsoTriState.msoTrue, MMsoTriState.msoFals);
    pres.SlideShowSettings.Run();
    

    我还需要做些什么来获得 Run() 也可以开始电影吗?

    编辑: 讨论中的演示文稿只有一张幻灯片,其中包含电影。如果我在上面再加一张幻灯片,效果会很好。之前也尝试过添加幻灯片,但有相同的问题,因此很明显,问题只存在于演示文稿中的最后一张幻灯片。

    2 回复  |  直到 16 年前
        1
  •  1
  •   Todd Main    16 年前

    这里的主要问题是PowerPoint动画(视频、音频、自定义运动路径等)仅在 SlideShowWindow 有重点。这意味着,当你运行你的应用程序并启动PPT时,你的应用程序仍然保持着焦点,因此动画不会运行(但这并不能阻止你手动操作你的跑步平台)。

    有几种方法可以解决这个问题:

    1. 您可以调用API SetWindow 到 带上你的 幻灯片窗口 到 前面。不是很好的方法 我的意见。
    2. 最简单的方法就是省钱 您的.ppt/.pptx到.pps/.ppsx (PowerPoint放映)。这样,你 可以使用相同的代码来运行它,并且 它将发射并聚焦 自动(和您的动画[视频,等)将运行您的预期)。
        2
  •  -2
  •   AdmSteck    16 年前

    发现了问题。我有一个 thread.sleep 演示文稿中的声明 app_SlideShowNextSlide 事件处理程序,处理一个幻灯片的结尾并开始下一个幻灯片。当时我没有思考,这段代码在幻灯片本身的同一个线程中运行。我创建了一个计时器对象,并将必要的代码移到计时器的 elapsed 事件处理程序。

    推荐文章