2010-06-10 5 views
7

Je cherche un moyen de lire les propriétés du document en C#. J'ai entendu parler de dsofile.dll, mais cela ressemble à un vieux wrapper COM, et je me demandais s'il y avait quelque chose de plus moderne pour le .NET framework/C#. Ce que je suis en train de lire n'est pas un fichier de document Office, mais un fichier SolidWorks .SLDDRW, qui a des propriétés personnalisées. Vous pouvez les afficher et les modifier dans l'Explorateur Windows en cliquant avec le bouton droit sur le fichier et en accédant à la fenêtre Propriétés, onglet Personnalisé.Comment lire les propriétés du fichier personnalisé dans C#

Quelqu'un sait-il lire ces propriétés personnalisées dans C#/.NET 3.5?

Merci!

Répondre

6

Le système SolidWorks utilise l'API Propriétés du document OLE. Comme vous l'avez dit, Microsoft offre un échantillon, Dsofile.dll, qui vous permet d'accéder à ces propriétés:

http://support.microsoft.com/kb/224351

L'API SolidWorks a également un support robuste pour ces propriétés, mais vous devez charger Solidworks pour utiliser l'API, ce n'est pas toujours la solution idéale. Notez que si le fichier est déjà ouvert dans Solidworks, vous ne pourrez pas modifier les propriétés personnalisées à l'aide de DSOfile.dll.

La réponse simple à votre question est qu'il n'y a pas une API mise à jour pour ces propriétés; De la même manière que de nombreuses autres API héritées (DDE, par exemple) continuent à apparaître dans les environnements de production, DSOFile répond au besoin et ne serait honnêtement pas tout à fait approprié pour une mise à jour en raison de sa nature plutôt faible. DSOFile, cependant, est parfaitement capable de gérer vos besoins et il fonctionne très bien avec .NET. La source est disponible et peut être compilée en 64 bits si c'est un problème pour vos utilisateurs; Cela signifie que vous avez besoin d'une installation 64 bits séparée, mais c'est un petit prix à payer (en plus, SolidWorks n'est pas vraiment compatible avec les cross-bitness).

+1

Vous pouvez trouver une copie compilée 64 bits de 'DSOFile.dll' [ici] (http://www.keysolutions.com /blogs/kenyee.nsf/d6plinks/KKYE-79KRU6). Il semble également possible de compiler la version 32 bits pour un système 64 bits en utilisant 'regsvr32.exe' dans' C: \ Windows \ SysWOW64' au lieu de celui de 'C: \ Windows \ system32'. – Wingman4l7

Questions connexes