2010-02-18 3 views
1

Je travaille sur un programme utilisant le projet JACOB (JAva COm Bridge).ProgID et relation d'extension de fichier

Il y a un fichier à ouvrir, le nom complet est transmis (ex: c: \ test \ test.xls). Pour que JACOB crée un nouveau composant ActiveX, il doit recevoir un ProgID ou un CLSID. (Comme Excel.Application, ou Word.Application, mais en dehors du domaine MS il y a aussi Autocad.Application etc.)

Alors, comment peut-on relier l'extension de fichier ou le type MIME à un ProgID ou CLSID donné? Y at-il une autre base de données que je peux joindre à Win32_ProgIDSpecification? Win32_ProgIDSpecification a tous les ProgID.

Répondre

0

Certains objets abstraits que vous obtenez par CLSID ou PROGID ne peuvent rien faire avec le nom de fichier. Il peut ouvrir le fichier uniquement via certaines méthodes d'interface, qui sont différentes dans la plupart des cas.

Pour les exécutables, par exemple, vous pouvez transmettre un nom de fichier en tant qu'argument, mais l'objet ActiveX n'a ​​pas cette capacité universelle.

Pour votre cas, je créerais ma propre "DB" pour les objets/applications les plus utilisés.

0

Vous pouvez vérifier le ProgID auquel une extension de fichier est associée dans le Registre Windows.

Recherchez sous la clé de base de registre HKEY_CLASSES_ROOT pour l'extension. Il y aura des clés appelées ".pdf", ".xls", etc. La valeur par défaut de la clé est le ProgID.