读“用外部程序启动AutoCAD方法的研究(七彩云南)(c++版)”
用c#模仿了一遍,实现了如下功能:
1、显示启动屏幕(用自定义的启动屏代替 AutoCAD 的启动屏);
2、启动 AutoCAD;
3、自动加载其他“你的软件包”相关的若干个 dll,arx,lisp等 程序;
4、初始化与发行软件相匹配的 AutoCAD 环境参数变量;
5、退出启动屏幕,将控制权限移交给 AutoCAD。
关键在于如何检测cad已经启动完毕,及时关闭启动屏。
关键语句
IntPtr cadPtr =MainForm.hwnd_CAD ; try { BringWindowToTop (cadPtr ); if (IsWindowEnabled (cadPtr)&&MainForm.pro_CAD.WaitForInputIdle ()&&cadPtr!=IntPtr.Zero &&IsWindow (cadPtr )==1) Application.Exit (); }
关键函数:
IsWindowEnabled
功能: Specifies whether CWnd is enabled for mouse and keyboard input.