我們經常在EXCEL或WORD或WPS中,打開CAD圖提示”不能啟動此對象的源應用程序“,或從CAD中複製的圖象到EXCEL中能正常打開,但是換了一個CAD版本後就打不開了,提示“不能啟動此對象的源應用程序“的解決辦法。
解決辦法很簡單:
由於AutoCAD具有向下兼容性,因此可以通過註冊表項的自動轉向方式讓舊的OLE對象去使用新的服務器程序,即通過修改註冊表實現低版本向高版本的轉換。
工具/原料
excel或word或wps
Auto CAD
方法/步驟
我們先獲取本機能正常打開的excel表格圖片。打開EXCEL後,單擊該圖片,獲得該圖片對應的OLE調用對象。在圖中我們可以看到能正常打開的圖像調用的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可獲得
{7AABBB95-79BE-4C0F-8024-EB6AF271231C}
按照如上述的1,2,3步我們可得到打不開的圖象對應的OLESID:
*AutoCAD.Drawing.16格式DWG文件的CLSID可查看HKEY_CLASSES_ROOT\AutoCAD.Drawing.16\CLSID可獲得
{8E75D913-3D21-11d2-85C4-080009A0C626}
這時我們打開文本編輯器,輸入轉換語句:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\CLSID\{8E75D913-3D21-11d2-85C4-080009A0C626}\Autoconvertto]
@="{7AABBB95-79BE-4C0F-8024-EB6AF271231C}"
保存為註冊表文件:AutoCADR16TOAutoCADR17.reg
雙擊 AutoCADR16TOAutoCADR17.reg 該文件即可向註冊表添加轉換信息,重新打開EXCEL表格即可正常打開圖象了。
為了方便各位找到對應的OLESID
附各版本對應的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各版本的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}
注意事項
由於AutoCAD具有向下兼容性,因此可以通過註冊表項的自動轉向方式讓舊的OLE對象去使用新的服務程序
各版本的CAD圖的OLESID不同