-
1 # 蛋蛋青兒
-
2 # 忠陽視覺
不能啟動此物件的源應用程式
案例:某公司有文員使用CAD2006劃圖然後將圖紙複製貼上到excel 2007當中,因公司發展需要,把CAD2006升級到CAD2008版本後,excel2007中原先做好的圖紙文件打不開,會提示“不能啟動此物件的源應用程式”,圖例:
原因:
這是因為不同版本的AutoCAD使用不同的登錄檔項來連線OLE物件的伺服器程式。當對應版本的軟體沒有安裝時,容器程式便無法找到OLE服務程式。本例中電腦安裝的是AutoCAD2008的版本,而圖紙是用AutoCAD2006畫的,本機預設的圖紙開啟程式為CAD2008,而不是CAD2006,缺少2006對2008的OLE轉換物件,即AutoCAD.Drawing.16不能向AutoCAD.Drawing.17轉換。
解決方法:
由於AutoCAD具有向下相容性,因此可以透過登錄檔項的自動轉向方式讓舊的OLE物件去使用新的伺服器程式,即透過修改登錄檔實現AutoCAD.Drawing.16向AutoCAD.Drawing.17的轉換。
我們先來了解一下AutoCAD各版本的OLE物件在登錄檔中的SID值是多少
AutoCAD 2007/2008的OLECLSID
{7AABBB95-79BE-4C0F-8024-EB6AF271231C}
AutoCAD 2004,05,06的OLECLSID
{8E75D913-3D21-11d2-85C4-080009A0C626}
AutoCAD 2000,2000i,2002的OLECLSID
{8E75D913-3D21-11d2-85C4-080009A0C626}
在圖中我們可以看到該案例中能正常開啟的影象呼叫的OLE物件為AutoCAD.Drawing.17(AutoCAD 2008版本使用的OLESID),這時我們開啟登錄檔編輯器
檢視HKEY_CLASSES_ROOT\[DWG格式號]\CLSID就能找到對應的DWG檔案格式的CLSID。即: *AutoCAD.Drawing.17格式DWG檔案的CLSID可檢視HKEY_CLASSES_ROOT\AutoCAD.Drawing.17\CLSID;
附各版本對應的OLESID
*AutoCAD 2000/2000i/20002格式DWG檔案的CLSID可檢視 HKEY_CLASSES_ROOT\AutoCAD.Drawing.15\CLSID;
*AutoCAD 2004/2005/2006格式DWG檔案的CLSID可檢視HKEY_CLASSES_ROOT\AutoCAD.Drawing.16\CLSID; *AutoCAD2007格式DWG檔案的CLSID可檢視HKEY_CLASSES_ROOT\AutoCAD.Drawing.17\CLSID,依此類推。
其他各版本AutoCAD檢視OLESID碼的方法大致相同。
當知道了現在本機安裝的AutoCAD(案例中使用的是AutoCAD 2008)程式版本和要讀的檔案版本後,可以透過下面的登錄檔新增語句新增一個自動轉換項。
Windows RegistryEditor Version 5.00
[HKEY_CLASSES_ROOT\CLSID\{8E75D913-3D21-11d2-85C4-080009A0C626}\Autoconvertto]
@="{7AABBB95-79BE-4C0F-8024-EB6AF271231C}"
上面的例子是使AutoCAD.Drawing.16生成的OLE物件在AutoCAD2008中得到支援。
這樣就應該可以正常打開了。
回覆列表
那是因為你安裝2012版的緣故,使用2012版儲存cad檔案沒有選擇2004版本或者更低的,所以新版本檔案使用舊版本軟體是無法編輯的。 這個跟office 版本沒有關係的,與cad軟體版本相關。