AutoCAD二次开发程序的自动安装处理
2006-04-03 09:48:26 来源:WEB开发网键值查询函数若运行成功,将返回长整型数ERROR_SUCCESS。
下面可利用szData带回的路径名与已知路径名组合成全路径从而打开菜单文件acad.mnu添加内容:
char szRootName[100]=\\support\\acad.mnu;
if (ret=ERROR_SUCCESS)
1strcat((char*) szData, szRootName);
现在szData中装有acad.mnu的全路径,以下操作将打开该文件并添入内容:
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[->基本参数]\n[卡盘原点]^c^cchuck_datam\n[换刀原点] ^c^ctool_datam\n[<-毛坯参数] ^c^cstock\n[工步设计] ^c^csteps\n[仿真加工] ^c^csimulation\n[代码生成] ^c^cgen_code\n[代码存盘] ^c^ccode_save\n[工艺存盘] ^c^csave_inf\n[工艺装入] ^c^cload_inf\n[->刀具管理]\n《创建新刀》 ^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函数打开文件,SetFilePointer函数将指针移至文件末尾,字符串数组szBuf中装有欲添加的内容,以WriteFile函数写入,PrintError为自编的错误处理函数。
以同样的方法可以找到acad2000doc.lsp文件并添入内容。
以下操作将创建一个名为“C:\hkcam”的子目录,并将事先准备好的本程序所在目录下的所有文件拷贝进去:
Cstring nam1, nam2;
BOOL bCreate=CreateDirectory("C:\\hkcam", NULL);//创建子目录
CfileFind finder; //创建类对象
BOOL b Working=finder.FindFile("*.*");//利用类函数搜索所有文件
While(b Working)//循环搜索及文件拷贝
{
b Working=finder.FindNextFile();
nam1= finder.GetFileName();//获得文件名
nam2= " c:\\hkcam\\";
nam2=nam2+nam1;//组成全路径
BOOL bCopy=CopyFile(nam1, nam2, FALSE);//文件拷贝
}
所有操作成功后,以信息框告知:
MessageBox( NULL,“安装成功,请按OK钮继续”,“安装结果”,MB_OK);
整个程序以MFC静态链接库创建。上述所有内容可以写入一个源文件内,这里称其为Append.cpp。为使最终执行文件尽可能小,应删去程序框架中所有不需要的内容。为此,源文件中只保留Append.cpp,Append.rc,及StdAfx.cpp几项;而头文件中只有Append.h,Resource.h,及StdAfx.h几项。所定义的唯一派生类为class CappendApp:public CwinApp,置于Append.h之内。
三、结束语
在VC++环境下利用有关WINDOWS系统注册表操作函数获得AutoCAD系统的安装路径,从而找出并改写AutoCAD有关文件;创建子目录并拷入各种二次开发形成文件,由此实现了AutoCAD二次开发程序与AutoCAD系统的自动衔接与嵌入。文中程序已由实践验证,完全可用于AutoCAD二次开发程序的自动安装。
- ››开发Android 日历教程
- ››开发学院总结 Win 8实用技巧大全
- ››开发学院原创教程:把win8的IE10放桌面上方法(非...
- ››开发者眼中的Windows Phone和Android
- ››开发学院教你用SQL 语句最快速清空MySQL 数据表的...
- ››AutoCAD WS for iPhone, iPod toch, and iPad
- ››AutoCAD三维建模系列教程:拉升、倒角、并集的应用...
- ››AutoCAD三维建模系列教程:拉升、复制移动制作木梯...
- ››AutoCAD三维建模系列教程:拉升、移动、复制的应用...
- ››开发一个自己的HTML在线编辑器(一)
- ››开发一个自己的HTML在线编辑器(二)
- ››开发者在App Store上赚的钱比在Android Market上多...
更多精彩
赞助商链接