结束ppt演示

本文关键字:演示 ppt 结束 | 更新日期: 2023-09-27 17:50:51

我创建了一些Office插件,用于跟踪文档/演示文稿是否关闭,然后在关闭文档/演示文稿之前执行一些自定义代码。

所有这些代码在Word插件中都可以正常工作,但在PowerPoint插件中,我得到了一个

" System.Runtime.InteropServices。COMException (0 x80048240):表示(未知成员):无效请求。这个操作无法在此事件处理程序中执行。-关闭PowerPoint应用程序关闭。被调用的方法是presentation.Close () .

如果它作为Ribbon事件处理程序的一部分被调用,则该方法工作良好,但如果它被任何应用程序(PresentationClose, PresentationBeforeClosePresentationCloseFinal)调用,则无法执行presentation.Close()

如前所述,我在Word插件中有相同的代码,但没有此问题。我知道这两款产品的事件处理是不同的,但我仍然不明白为什么当应用程序被关闭时——或者演示文稿被关闭时——在PowerPoint中会出现问题。

希望有人能提供一些好的建议。

结束ppt演示

我发现了一些非常相似的东西;为了解决PPT中的一些错误或其他问题,我需要关闭然后重新打开当前演示文稿,但无法从事件处理程序中关闭演示文稿(我想这是有道理的,因为它仍然处理属于触发它的演示文稿的事件)。

我通过让事件处理程序无模型地加载表单来解决这个问题。这允许事件处理程序中的代码继续到事件处理程序的End Sub,因此您不再处于事件处理程序中。

表单中的初始化代码然后关闭当前文档并卸载表单。

不需要显示表单,所以用户永远不会看到这些

我尝试了很多方法,但都不起作用。所以最好搜索一下ppt流程,然后通过代码终止它。希望这就是你要找的。

Process[] pros = Process.GetProcesses();
  for (int i = 0; i < pros.Count(); i++)
   {
   if (pros[i].ProcessName.ToLower().Contains("powerpnt"))
        {
          pros[i].Kill();
        }
   }