ProgID和文件扩展名的关系

时间:2010-02-18 23:10:07

标签: java activex jacob clsid progid

我正在使用JACOB项目(JAva COm Bridge)开发一个程序。

有一个要打开的文件,传递整个名称(例如c:\ test \ test.xls)。为了让JACOB创建一个新的ActiveXComponent,需要传递一个ProgID或CLSID。 (例如Excel.Application或Word.Application,但在MS领域之外还有Autocad.Application等。)

那么如何将文件扩展名或MIME类型与给定的ProgID或CLSID相关联?是否有另一个我可以加入Win32_ProgIDS规范的数据库? Win32_ProgIDS规范包含所有ProgID。

2 个答案:

答案 0 :(得分:0)

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

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

对于您的情况,我会为最常用的对象/应用程序创建自己的“DB”。

答案 1 :(得分:0)

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

在注册表基础键HKEY_CLASSES_ROOT下查找扩展名。会有一些名为“.pdf”,“。xls”等的键。键的默认值是ProgID。

相关问题