首页 > 解决方案 > 从 Python 访问 Microsoft Office 事件(Microsoft.Office.Interop.PowerPoint equiv lib?)

问题描述

我希望用 python 而不是 C# 实现 Scott Hanselman 的PowerPoint 到 OBS 场景切换器,因为我不知道 C#,不想在我的 Mac 上安装 .NET,只想在 python 中完成。我有一种感觉,与学习 C# 相比,我会在 .NET 方面遇到更多困难,因为该语言在语法上看起来非常简单。

我坚持实施的问题是 C# 代码使用 Microsoft.Office.Interop.PowerPoint 来检测 PowerPoint 发出的 SlideShowNextSlide 事件,但它是一个内部事件。

我已经搜索但无法找到允许类似访问的 python 库。有人知道吗?

希望似乎更多地采用 python 的 Microsoft 将创建该库,但将其保留在 C# 中也可以确保将一些捕获返回到 .NET。

标签: pythonc#powerpoint

解决方案


简短的回答可能是“否”,除非您计算使用 IronPython 访问 Windows 机器上正在运行的 PowerPoint 应用程序实例之间的“实时”连接。

python-pptx读取和写入 PPTX文件,但与正在运行的 PowerPoint 实例没有连接,就像在 Windows 下运行的 VBA 一样。因此,它不会知道正在运行的 PowerPoint 应用程序中发生了什么,例如“我现在要切换到幻灯片 X”事件。

IronPython 方法可能会奏效,但由于缺乏有关 Microsoft PowerPoint 对象模型如何映射到 Python 对象名称的文档,这很难做到。基本上每一行都很难以某种方式对如何访问您感兴趣的对象进行逆向工程。如果该环境对您有吸引力,可能值得一试。


推荐阅读