附加到 Power Point 的打开实例
我正在编写一个简单的模块,它使用 Microsoft.Office.Interop.PowerPoint 来确定 PowerPoint 幻灯片是否处于活动状态,如果是,当前正在呈现哪张幻灯片。当我使用 Microsoft.Office.Interop.PowerPoint.Presentation 在代码中打开演示文稿时,这非常有用。如果可能的话,我想检查 Power Point 实例是否已打开,如果是,则附加到它而不是打开新实例。
TIA
I am writing a simple module that uses Microsoft.Office.Interop.PowerPoint to determine if a PowerPoint slideshow is active and if so which slide is currently being presented. This works great when I use Microsoft.Office.Interop.PowerPoint.Presentation to open the presentation in my code. If possible, I want to check to see if an instance of Power Point is already open and if so attach to it instead of opening a new instance.
TIA
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
创建一个新的
Interop.PowerPoint.Application
并检查您的文件是否在Presentations
集合中。与 Word 或 Excel 不同,PowerPoint 是单实例应用程序;您的新
Application
实例将自动连接到任何打开的 PowerPoint 副本。Create a new
Interop.PowerPoint.Application
and check whether your file is in thePresentations
collection.Unlike Word or Excel, PowerPoint is a single-instance application; your new
Application
instance will automatically connect to any open copy of PowerPoint.您可以通过调用
Marshal.GetActiveObject ("Powerpoint.Application")
进行检查 - 如果 powerpoint 未运行,它会给出异常...请参阅 http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.marshal.getactiveobject.aspx如果它正在运行,这会给你一个对象...
you can check by calling
Marshal.GetActiveObject ("Powerpoint.Application")
- it gives an exception if powerpoint is not running... see http://msdn.microsoft.com/en-us/library/system.runtime.interopservices.marshal.getactiveobject.aspxIf it is running this gives you an object...