ProgID и отношение расширения файла - PullRequest
1 голос
/ 19 февраля 2010

Я работаю над программой, использующей проект 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 голосов
/ 21 апреля 2010

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

Найдите расширение базового ключа реестра HKEY_CLASSES_ROOT.Там будут ключи, называемые «.pdf», «.xls» и т. Д. Значение по умолчанию для ключа - ProgID.

0 голосов
/ 19 февраля 2010

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

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

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

...