程序名:MFCOpenCADWithARX.exe
版本:1.0
时间:15.11.2
*****************************************************
首先感谢 @七彩云南,在网上查找资料的时候发现了他的资料,很是详细,但是没有找到文章的出处。
我的程序没有他的复杂。
*****************************************************
用途:用外部程序启动Autocad程序,同时自动加载和启动ARX程序。
环境:Win7 64位 VS2010 AutoCAD2010 自己的Arx程序
背景:传统的插件加载模式是,打开CAD——工具——加载程序——选择你的ARX程序——成功之后输入命令行启动你的ARX程序或者通过别的方式打开。
优点:1、只是安装好外部程序EXE文件,使用点击打开就能自动加载ARX并打开插件。
2、这个程序仅仅是加载了自己的Arx文件,不会改变CAD的外观以及你之前的环境配置。不会永久的更改你的AutoCAD的界面。
启动程序应该做如下工作:
1、启动AutoCAD
2、加载ARX程序
3、发送命令到AutoCAD,启动所做的ARX
一、启动AutoCAD的方法:
七彩云南在他的文章中列出了3种方法分别是
1、用COM的方式启动 使用AutoCAD COM接口
2、采用ShellExecute 我也不知道是个什么方法,不做解释
3、CreatProcess方法 比较复杂 下文主要讲这种方法
*************************************************************
关于CreatProcess方法
关于这个函数,如果你看不懂MSDN,这里有个大招:
http://baike.baidu.com/link?url=G4XIZs8nbrteQ3spqXgUFo0bNwHRinatQ4mqfi-mV3VEompeNnRaJ8FmksCDCwokPaT4AKgyWanV7Hq1kZYRCa
百度百科上的,去看看什么用途
STARTUPINFO si;
memset(&si,0,sizeof(STARTUPINFO));
si.cb=sizeof(STARTUPINFO);
si.dwFlags=STARTF_USESHOWWINDOW;
si.wShowWindow=SW_SHOWMAXIMIZED;
PROCESS_INFORMATION pi;//必备参数设置结束
UINT uTimeoutms=60*1000;
DWORD dwStart = GetTickCount();//计算时间开始
//AfxMessageBox(lpszAcadExeFile);
//AfxMessageBox(strExePath);
BOOL bRet = CreateProcess(lpszAcadExeFile,
_T("/nologo"),
NULL,
NULL,
FALSE,
0,
NULL,
strExePath,
&si,
&pi);
if(!bRet)
{
MessageBoxW(_T("启动cad失败"));
return false;
}//end if
<