excel不能啓動此對象的源應用程序


不能啓動此對象的源應用程序

案例:

某公司有文員使用CAD2006劃圖然後將圖紙複製粘貼到excel 2007當中,因公司發展需要,把CAD2006升級到CAD2008版本後,excel2007中原先做好的圖紙文檔打不開,會提示“不能啓動此對象的源應用程序”,圖例:

wKioL1VpTzLifv7TAAIKBb-kg_c014.jpg

原因:

這是因爲不同版本的AutoCAD使用不同的註冊表項來連接OLE對象的服務器程序。當對應版本的軟件沒有安裝時,容器程序便無法找到OLE服務程序。

 

本例中電腦安裝的是AutoCAD2008的版本,而圖紙是用AutoCAD2006畫的,本機默認的圖紙打開程序爲CAD2008,而不是CAD2006,缺少20062008OLE轉換對象,即AutoCAD.Drawing.16不能向AutoCAD.Drawing.17轉換。

 

解決方法:

由於AutoCAD具有向下兼容性,因此可以通過註冊表項的自動轉向方式讓舊的OLE對象去使用新的服務器程序,即通過修改註冊表實現AutoCAD.Drawing.16AutoCAD.Drawing.17的轉換。

 

我們先來了解一下AutoCAD各版本的OLE對象在註冊表中的SID值是多少

AutoCAD 2007/2008OLECLSID

{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}

 

各版本的OLESID其時很容易查到,當在excel當中點擊圖紙時會顯示圖紙調用的OLE對象版本,如圖:

wKiom1VpTamSbcOOAAFfuBL-G9I801.jpg

在圖中我們可以看到該案例中能正常打開的圖像調用的OLE對象爲
AutoCAD.Drawing.17(AutoCAD 2008
版本使用的OLESID),這時我們打開註冊表編輯器

wKioL1VpT1HzgLA3AADKhcC3_C4185.jpg

 

查看HKEY_CLASSES_ROOT\[DWG格式號]\CLSID就能找到對應的DWG文件格式的CLSID。即:
 *
AutoCAD.Drawing.17格式DWG文件的CLSID可查看
HKEY_CLASSES_ROOT\AutoCAD.Drawing.17\CLSID

wKiom1VpTcfzmpP1AAMvWMTsJtA386.jpg

 

附各版本對應的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中得到支持。

 

然後就可正常打開了。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章