【问题标题】:Get application ID获取应用程序 ID
【发布时间】:2016-01-09 14:30:10
【问题描述】:

您知道如何获取应用程序 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);
}

Find existing instance of Office Application

【问题讨论】:

  • 你所说的应用程序ID是什么意思?
  • 你从哪里开始?那就是:你有什么信息想从中获得名字? (PS。“Application Id”在COM中已经有含义:它是GUID的另一种用法,这些名称通常称为“program ids,或更常见的progid

标签: c# windows com system ole


【解决方案1】:

您可以使用 Microsoft 的 OLE/COM 对象查看器找到此信息。

您可以使用 OLE/COM 对象查看器来查看控件的接口。 Tell me more...

例如以 Word 为例,首先展开 All Objects 节点:

...然后向下滚动到 Microsoft Word 应用程序。与版本无关的 ProgID 将显示在右侧。在您的应用程序中使用它。

如果我需要 Excel 怎么办?

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

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


注意:如果您像我一样遇到多个条目,请选择显示 ProgIDVersionIndependentProgID 的条目。


【讨论】:

  • 太棒了。非常感谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-13
  • 2011-05-17
  • 2010-12-30
相关资源
最近更新 更多