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_ProgIDSpecification имеет все ProgID.

2 ответа

Вы можете проверить ProgID, с которым связано расширение файла в реестре Windows.

Посмотрите под ключ реестра HKEY_CLASSES_ROOT для расширения. Там будут ключи, называемые ".pdf", ".xls" и т. Д. По умолчанию для ключа используется ProgID.

Некоторые абстрактные объекты, которые вы получаете с помощью CLSID или PROGID, ничего не могут сделать с именем файла. Он может открыть файл только через некоторые методы интерфейса, которые отличаются в большинстве случаев.

Например, для исполняемых файлов вы можете передать имя файла в качестве аргумента, но объект ActiveX не обладает такой универсальной способностью.

Для вашего случая я бы создал собственную "БД" для наиболее часто используемых объектов / приложений.

Другие вопросы по тегам