2010-06-10 88 views
7

我正在尋找一種方式來閱讀C#中的文檔屬性。我聽說過dsofile.dll,但它看起來像一箇舊的COM包裝器,並且想知道是否有一些更現代的.NET框架/ C#。我實際閱讀的不是辦公文檔文件,而是具有自定義屬性的Solidworks .SLDDRW文件。您可以在Windows資源管理器中查看和更改這些文件,方法是右鍵單擊該文件,然後轉到屬性窗口「自定義」選項卡。如何閱讀C#中的自定義文件屬性

任何人都知道如何在C#/ .NET 3.5中讀取這些自定義屬性?

謝謝!

回答

6

SolidWorks的系統使用OLE文檔屬性API。正如您所指出的那樣,微軟提供了一個樣本,DSOFile.dll,它允許你訪問這些屬性:

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

SolidWorks的API也有這些性能強大的支持,但你必須加載Solidworks的使用API​​,所以它並不總是理想的解決方案。請注意,如果該文件已在Solidworks中打開,則無法使用DSOfile.dll編輯自定義屬性。

您的問題的簡單答案是,這些屬性沒有更新的API;與許多其他傳統API(例如DDE)在生產環境中繼續出現的方式一樣,DSOFile適合此需求,並且由於其相當低級的特性,因此不適合更新。然而,DSOFile完全能夠處理您的需求,並且它可以很好地與.NET一起工作。源是可用的,如果這對您的用戶是個問題,可以編譯爲64位;這確實意味着你需要單獨的64位安裝,但這是一個小的代價(另外SolidWorks並不完全適合跨位開發)。

+1

您可以找到一個64位DSOFile.dll的編譯副本[here](http://www.keysolutions.com /blogs/kenyee.nsf/d6plinks/KKYE-79KRU6)。也可以使用'C:\ Windows \ SysWOW64'中的'regsvr32.exe'而不是'C:\ Windows \ system32'中的'regsvr32.exe'來編譯64位系統的32位版本。 – Wingman4l7 2012-07-09 04:25:50