欧美成人aaaaa免费视频_亚洲欧美激情小说另类_欧美激情一区二区三区视频_一级在线|欧洲

技術(shù)頻道

AutoCAD二次開發(fā)程序的自動安裝處理

AutoCAD的二次開發(fā)主要涉及以下內(nèi)容:(1)編寫各種用戶自定義函數(shù)并形成若干LISP、ARX、VLX或ADS文件,以及一些DCL文件。(2)建立符合自己要求的菜單文件,一般可在AutoCAD原菜單文件內(nèi)添加自己的內(nèi)容,對于AutoCAD2000版本還可增加部分菜單文件,然后經(jīng)交互方式加入到系統(tǒng)中去。(3)在系統(tǒng)的ACAD.LSP或類似文件中加入某些內(nèi)容以便進行各種初始化操作,如在啟動時立即裝入一些文件等。(4)通過系統(tǒng)對話框設(shè)置某些路徑。這些操作在程序開發(fā)成功后向其它AutoCAD系統(tǒng)上安裝應(yīng)用,特別是需要大批安裝時,需要進行很多文件檢索、內(nèi)容增刪、子目錄創(chuàng)建、文件拷貝、系統(tǒng)設(shè)置等繁瑣工作,如能令上述工作全部自動進行,使整個二次開發(fā)程序在無人干預(yù)的情況下嵌入系統(tǒng),將大大提高工作效率。為此筆者用VC++開發(fā)了一套自動安裝程序,使原本需要五、六分鐘的人工操作在十幾秒內(nèi)即可自動完成。

一、基本思路

整個安裝程序遵循以下思路:

1) 首先獲得所在機器AutoCAD2000系統(tǒng)的安裝路徑;
2) 尋找菜單文件AutoCAD2000\\support\\acad.mnu,打開文件并將要添加的內(nèi)容加至末尾;
3) 尋找LISP文件AutoCAD2000\\support\\acad2000doc.lsp,打開文件并將要添加的內(nèi)容加至末尾;
4) 創(chuàng)建一個預(yù)先命名的子目錄,將所有二次開發(fā)形成的各類文件拷入;
5) 給出信息框,告知安裝成功,如有問題則告知安裝失敗。

需要指出的是,在添入acad2000doc.lsp的內(nèi)容中須有如下語句:

(command“_menu”(strcat (getvar "menuname") ".mnu")),目的是為了強制執(zhí)行菜單文件裝入命令,將改動后的acad.mnu文件編譯后裝入。

另外,在添入acad2000doc.lsp的內(nèi)容中還有一賦值語句,將準(zhǔn)備創(chuàng)建的包含所有二次開發(fā)生成文件的子目錄全路徑名賦予一全局變量,以供二次開發(fā)程序在需要時調(diào)用,從而避免了在AutoCAD環(huán)境下交互設(shè)定路徑的麻煩。
境下交互設(shè)定路徑的麻煩。

二、實現(xiàn)方式及關(guān)鍵函數(shù)

為獲得AutoCAD2000的安裝路徑,需要利用WINDOWS系統(tǒng)注冊表的有關(guān)功能。
首先通過RegOpenKey函數(shù)打開注冊表:

HKEY hKey;
LONGret=RegOpenKey( HKEY_LOCAL_MACHINE, "Software\\Autodesk\\AutoCAD\\R14.0\\ACAD-1:804", &hKey);

其中第一參數(shù)HKEY_LOCAL-MACHINE為注冊表中預(yù)定義的主鍵句柄,第二參數(shù)為注冊表中HKEY_LOCAL_MACHINE下的子鍵內(nèi)容,第三參數(shù)hKey將返回一子鍵句柄,用于接下來的鍵值查詢。若該函數(shù)運行成功,將返回一長整型數(shù)ERROR_SUCCESS。

接下來利用RegQueryValueEx函數(shù)進行鍵值查詢:

DWORD dwType=REG_SZ;
BYTE szData[100];
DWORD dwSize=sizeof(szData);
If (ret=ERROR_SUCCESS)
ret=RegQueryValueEx(hKey, "AcadLocation", 0, &dwType, szData, &dwSize);

其中第一參數(shù)hKey為由RegOpenKey函數(shù)獲得的欲查詢的子鍵句柄;第二參數(shù)“AcadLocation”為欲查詢的鍵值名;第三參數(shù)為保留項,要求添0;第四參數(shù)為鍵值數(shù)據(jù)類型;第六參數(shù)為鍵值緩沖器容量;最關(guān)鍵的是第五參數(shù)szData,欲查詢的鍵值結(jié)果將由其帶回,該鍵值即為所需要的AutoCAD2000的安裝路徑。

以上涉及到的有關(guān)注冊表中主鍵、子鍵、鍵值名、及鍵值的關(guān)系可通過下列方法由WINDOWS系列注冊表查出:單擊“開始”--“運行”--添入“regedit”--“確定”--“HKEY_LOCAL_MACHINE”--“Software”--“Autodesk”--“Autocad”--“R15.0”--“ACAD-1:804”--“AcadLocation”--“e:\autocad2000”。其中的鍵值名“AcadLocation”所對應(yīng)的鍵值為“e:\autocad2000”,就是AutoCAD2000的安裝路徑,在不同的機器上可能內(nèi)容不同。

鍵值查詢函數(shù)若運行成功,將返回長整型數(shù)ERROR_SUCCESS。


char szRootName[100]=\\support\\acad.mnu;
if (ret=ERROR_SUCCESS)
1strcat((char*) szData, szRootName);
現(xiàn)在szData中裝有acad.mnu的全路徑,以下操作將打開該文件并添入內(nèi)容:
HANDLE hfile=CreateFile((char*) szData, GENERIC_READ|GENERIC_WRITE, 0,
NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
If(hfile!=INVALID_HANDLE_VALUE)
{
if (0xFFFFFFFF!=SetFilePointer(hfile, 0, NULL, FILE_END))
{
char szBuf[1000]="\n***POP12\n**CAM\n[&CAM]\n[->基本參數(shù)]\n[卡盤原點]^c^cchuck_datam\n[換刀原點] ^c^ctool_datam\n[<-毛坯參數(shù)] ^c^cstock\n[工步設(shè)計] ^c^csteps\n[仿真加工] ^c^csimulation\n[代碼生成] ^c^cgen_code\n[代碼存盤] ^c^ccode_save\n[工藝存盤] ^c^csave_inf\n[工藝裝入] ^c^cload_inf\n[->刀具管理]\n《創(chuàng)建新刀》 ^c^ccreate_new_tool\n[<-刀庫增刪] ^c^ctool_manage\n";
DWORD dwWrite=0;
BRet=WriteFile(hfile, szBuf, Lstrlen(szBuf), &dwWrite, NULL);
If (!bRet) Printerror();
}
CloseHandle(hfile);
}

上述操作中用CreateFile函數(shù)打開文件,SetFilePointer函數(shù)將指針移至文件末尾,字符串?dāng)?shù)組szBuf中裝有欲添加的內(nèi)容,以WriteFile函數(shù)寫入,PrintError為自編的錯誤處理函數(shù)。

以同樣的方法可以找到acad2000doc.lsp文件并添入內(nèi)容。

以下操作將創(chuàng)建一個名為“C:\hkcam”的子目錄,并將事先準(zhǔn)備好的本程序所在目錄下的所有文件拷貝進去:

Cstring nam1, nam2;
BOOL bCreate=CreateDirectory("C:\\hkcam", NULL);//創(chuàng)建子目錄
CfileFind finder; //創(chuàng)建類對象
BOOL b Working=finder.FindFile("*.*");//利用類函數(shù)搜索所有文件
While(b Working)//循環(huán)搜索及文件拷貝
{
b Working=finder.FindNextFile();
nam1= finder.GetFileName();//獲得文件名
nam2= " c:\\hkcam\\";
nam2=nam2+nam1;//組成全路徑
BOOL bCopy=CopyFile(nam1, nam2, FALSE);//文件拷貝
}

所有操作成功后,以信息框告知:

MessageBox( NULL,“安裝成功,請按OK鈕繼續(xù)”,“安裝結(jié)果”,MB_OK);

整個程序以MFC靜態(tài)鏈接庫創(chuàng)建。上述所有內(nèi)容可以寫入一個源文件內(nèi),這里稱其為Append.cpp。為使最終執(zhí)行文件盡可能小,應(yīng)刪去程序框架中所有不需要的內(nèi)容。為此,源文件中只保留Append.cpp,Append.rc,及StdAfx.cpp幾項;而頭文件中只有Append.h,Resource.h,及StdAfx.h幾項。所定義的唯一派生類為class CappendApp:public CwinApp,置于Append.h之內(nèi)。

三、結(jié)束語

在VC++環(huán)境下利用有關(guān)WINDOWS系統(tǒng)注冊表操作函數(shù)獲得AutoCAD系統(tǒng)的安裝路徑,從而找出并改寫AutoCAD有關(guān)文件;創(chuàng)建子目錄并拷入各種二次開發(fā)形成文件,由此實現(xiàn)了AutoCAD二次開發(fā)程序與AutoCAD系統(tǒng)的自動銜接與嵌入。文中程序已由實踐驗證,完全可用于AutoCAD二次開發(fā)程序的自動安裝。
 

文章版權(quán)歸西部工控xbgk所有,未經(jīng)許可不得轉(zhuǎn)載。

欧美成人aaaaa免费视频_亚洲欧美激情小说另类_欧美激情一区二区三区视频_一级在线|欧洲

      9000px;">

          欧美mv和日韩mv的网站| 亚洲最新视频在线播放| 欧美一区二区免费| 国产欧美一区二区三区网站| 色吊一区二区三区| 亚洲综合一区二区| 亚洲色图制服诱惑| 蜜桃视频一区二区| 97精品视频在线观看自产线路二| 欧美日韩久久久一区| 久久免费电影网| 一区二区三区精品视频在线| 精品一区二区影视| 欧美在线免费视屏| 欧美激情自拍偷拍| 久久 天天综合| 欧美日高清视频| 自拍av一区二区三区| 国产精品综合网| 日韩免费视频线观看| 亚洲国产日韩a在线播放性色| 国产成人精品1024| 日韩欧美区一区二| 天天综合色天天| 色8久久精品久久久久久蜜| 久久精品国产色蜜蜜麻豆| 六月丁香婷婷久久| 91精品国产入口在线| 91精品福利在线一区二区三区| 麻豆久久久久久| 欧美色精品在线视频| 国产精品欧美一级免费| 国产一区二区影院| 日韩免费高清av| 三级在线观看一区二区| 色综合久久综合| 日韩毛片视频在线看| gogo大胆日本视频一区| 国产日韩欧美精品综合| 国产精品12区| 国产欧美日韩另类一区| 狠狠久久亚洲欧美| 久久久噜噜噜久久中文字幕色伊伊 | 欧美日韩高清一区二区不卡| 一区二区三区中文字幕电影 | 天堂成人国产精品一区| 色综合久久久久综合| 国产精品久久三区| 91在线视频免费观看| 中文字幕亚洲电影| 色婷婷激情综合| 亚洲va天堂va国产va久| 欧美色手机在线观看| 亚洲成人在线观看视频| 欧美一区二区三区电影| 蜜桃av噜噜一区| 日韩免费视频一区| 丁香婷婷深情五月亚洲| 国产精品伦一区| 色综合一区二区| 精品少妇一区二区| 久久婷婷综合激情| 欧美国产一区二区在线观看| 国产一区二区在线免费观看| 中文字幕不卡在线| 色综合久久中文综合久久牛| 一区二区三区91| 欧美军同video69gay| 美国欧美日韩国产在线播放| 久久久精品2019中文字幕之3| 国产成人三级在线观看| 亚洲少妇30p| 日韩亚洲欧美一区二区三区| 欧美性猛交xxxxxxxx| 国产偷v国产偷v亚洲高清| 不卡影院免费观看| 亚洲成av人片观看| 久久综合精品国产一区二区三区| av亚洲精华国产精华精华| 一区二区三区小说| 精品久久久久久无| 97se亚洲国产综合自在线 | 1区2区3区精品视频| 欧美三级一区二区| 黄页网站大全一区二区| 最新热久久免费视频| 欧美一区二区在线免费播放 | 99久久久无码国产精品| 午夜欧美电影在线观看| 久久精品欧美日韩精品| 欧美在线三级电影| 国产精品99久久久久久久女警| 国产成人免费网站| 亚洲成人精品一区二区| 国产拍揄自揄精品视频麻豆| 欧美三级中文字幕在线观看| 国产91丝袜在线播放九色| 五月天激情综合| 亚洲色图20p| 久久久亚洲综合| 91精品国产91久久综合桃花| 一本大道久久a久久精品综合| 久久99精品久久久久久国产越南 | 成人免费在线观看入口| 日韩欧美的一区| 在线亚洲人成电影网站色www| 国产一区二区三区四区五区入口| 五月婷婷综合激情| 亚洲视频你懂的| 国产午夜精品理论片a级大结局| 欧美精品久久一区二区三区| 91捆绑美女网站| 成人免费视频一区| 国产一区二区三区久久悠悠色av| 无吗不卡中文字幕| 亚洲免费观看在线观看| 久久精品视频一区二区三区| 欧美成人免费网站| 欧美理论片在线| 欧美日韩1234| 欧美日韩美少妇| 亚洲成在人线免费| 亚洲黄色免费网站| 日韩伦理av电影| 亚洲日本护士毛茸茸| 欧美国产日产图区| 久久久久久一二三区| 欧美精品一区二区三区很污很色的| 欧美日本国产视频| 制服丝袜一区二区三区| 5858s免费视频成人| 欧美一区二区私人影院日本| 欧美日韩成人在线| 日韩一区和二区| 欧美成人午夜电影| 久久久亚洲精品石原莉奈| 欧美大白屁股肥臀xxxxxx| 日韩一区二区视频| 久久久久亚洲综合| 国产精品久久影院| 最近日韩中文字幕| 亚洲乱码日产精品bd| 亚洲久草在线视频| 亚洲综合久久av| 天天色综合天天| 九九九久久久精品| 一区二区三区高清| 婷婷综合五月天| 麻豆精品久久精品色综合| 久久精品二区亚洲w码| 国产乱国产乱300精品| 成人黄色a**站在线观看| 97超碰欧美中文字幕| 精品视频一区二区三区免费| 91麻豆精品国产91久久久久久| 久久久亚洲精品石原莉奈| 亚洲色图在线看| 日本亚洲电影天堂| 国产精品一区在线观看你懂的| 99国产欧美久久久精品| 欧美性生活久久| 精品国产一区二区亚洲人成毛片| 国产精品午夜在线观看| 一区二区三区四区视频精品免费 | 成人三级伦理片| 欧美久久久久久久久久| 精品国产自在久精品国产| 亚洲色图在线播放| 免费观看在线综合| av成人动漫在线观看| 在线成人午夜影院| 久久欧美一区二区| 亚洲一区免费观看| 高清国产一区二区三区| 欧美日韩一级片网站| 久久看人人爽人人| 亚欧色一区w666天堂| 国产福利一区二区三区在线视频| 色婷婷av一区二区三区大白胸| 91精品国产高清一区二区三区| 国产精品国产馆在线真实露脸| 日韩电影免费一区| 99国产一区二区三精品乱码| 精品伦理精品一区| 亚洲国产一区二区a毛片| 国产精品 日产精品 欧美精品| 欧美精品一级二级| 亚洲天堂精品在线观看| 国产伦精品一区二区三区免费 | 首页综合国产亚洲丝袜| 99久久精品国产毛片| 精品88久久久久88久久久| 亚洲狠狠爱一区二区三区| 99久久99久久精品免费看蜜桃| 日韩精品在线网站| 亚洲www啪成人一区二区麻豆| 波多野结衣一区二区三区| 久久精品亚洲精品国产欧美| 蜜臀a∨国产成人精品| 欧美日韩国产123区|