你知道如何获得应用程序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 。
注意:如果像我一样,遇到多个条目,请使用显示ProgID或VersionIndependentProgID的条目 。