1

I am working on a program using the JACOB project (JAva COm Bridge).

There is a file to open, the entire name is passed along (ex. c:\test\test.xls). In order for JACOB to create a new ActiveXComponent it needs to be passed a ProgID or CLSID. (Such as Excel.Application, or Word.Application, but outside of the MS realm there is also Autocad.Application etc.)

So how can one relate either the file extension or MIME type to a given ProgID or CLSID? Is there another db that I can join to Win32_ProgIDSpecification? Win32_ProgIDSpecification has all the ProgID's.

4

2 回答 2

0

您通过 CLSID 或 PROGID 获得的某些抽象对象对文件名无能为力。它只能通过一些接口方法打开文件,这在大多数情况下是不同的。

例如,对于可执行文件,您可以将文件名作为参数传递,但 ActiveX 对象没有这种通用能力。

对于您的情况,我将为最广泛使用的对象/应用程序创建自己的“数据库”。

于 2010-02-19T03:56:19.130 回答
0

您可以在 Windows 注册表中检查与文件扩展名关联的 ProgID。

在注册表基本键 HKEY_CLASSES_ROOT 下查找扩展名。那里会有名为“.pdf”、“.xls”等的键。键的默认值是 ProgID。

于 2010-04-21T08:04:35.993 回答