获取应用程序ID

你知道如何获得应用程序ID(在给出的例子中是“Word.Application”)吗? 如果我需要Excel呢? 还是InDesing?

object word; try { word = System.Runtime.InteropServices.Marshal.GetActiveObject("Word.Application"); //If there is a running Word instance, it gets saved into the word variable } catch (COMException) { //If there is no running instance, it creates a new one Type type = Type.GetTypeFromProgID("Word.Application"); word = System.Activator.CreateInstance(type); } 

查找Office应用程序的现有实例

您可以使用Microsoft的OLE / COM Object Viewer查找这些信息。

您可以使用OLE / COM对象查看器查看控件的接口。 告诉我更多…

例如,通过Word示例,首先展开“ 所有对象”节点:

在这里输入图像描述

然后向下滚动到Microsoft Word应用程序 。 独立于版本的ProgID将显示在右侧。 在你的应用程序中使用它。

在这里输入图像描述

如果我需要Excel呢?

像以前一样,滚动,直到找到Microsoft Excel应用程序

在这里输入图像描述

在这里我们可以看到它是Excel.Application 。 如果您安装了多个版本并希望使用特定版本,请使用ProgID字段中显示的ProgId


注意:如果像我一样,遇到多个条目,请使用显示ProgIDVersionIndependentProgID的条目