读“用外部程序启动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. 

posted @ 2012-08-16 23:15  Cad人生  阅读(945)  评论(0编辑  收藏  举报