[求助]怎么让函数只在第一次打开CAD时运行
本帖最后由 作者 于 2008-9-30 19:02:16 编辑 <br /><br /> <p>做了一个启动画面,加入启动组后每次打开图形都启动,怎样才能只在第一次打开CAD时运行?</p><p>是不是有哪个系统变量可以判断CAD是否启动呢.我只知道放在ACAD.LSP里,再设置ACAD.LSP只第一次加载,不用ACAD.LSP呢?</p><p>源程序:</p><p>(defun test( / rndobj)<br/> (setq rndobj (vlax-create-object "showbmp.vbmpApp"))<br/> (vlax-invoke-method rndobj "vbmp" (vla-get-ActiveDocument (vlax-get-acad-object)))<br/> (princ)<br/>)</p><p>DLL文件:</p> 好象VBA只在打开CAD时加载,怎么检测VBA已加载呢? 能否说说你的程序怎么用! 把下的VBMP.DLL放在SYSTEM32目录下,运行"regsvr32 vbmp.dll"注册DLL,在CAD中加载上面的代码,命令行输入(TEST)就看到结果了. 谁能帮我把上面的LISP代码改成VBA代码,我在VBA里运行. <p>可以在注册表里做记号解决</p> 支持6楼的做法 zhang8755发表于2008-10-2 22:20:00static/image/common/back.gif可以在注册表里做记号解决<p>可是退出时又怎么删除做记号呢,如果不删除,头一次也不会运行了.</p> <p>用黑板,外部文件,注册表等都可以达到你的要求.</p> 本帖最后由 作者 于 2008-10-28 13:02:01 编辑 <br /><br /> <p>请教楼主,怎么把BMP大包进DLL啊???我按照下面的方法制作好DLL后,在运行你的test,返回错误: 参数类型错误: VLA-OBJECT nil</p><p>但是运行你的DLL时,是可以的!!!我作的DLL同样命名为VBMP.DLL,就是不行,请指教</p><p></p><p></p><p></p><p></p><p>现在以建立“EBGSoft.dll”文件作为示例:</p><p> 1.建立一个目录(如“bmp”),将图标文件全部放入该目录。注意,图标文件应为位图文件(*.bmp)。</p><p> 2.利用“EBG_ResourceTool.exe”创建资源文件“EBGSoft.rc”及“EBGSoft.res”。<br/> 注意:要想创建成功,必须在电脑的C盘或D盘安装有VB程序(安装在默认路径)。</p><p> 3.启动VB,选择菜单:文件/新建工程/选择“ActiveX DLL”/确定。</p><p> 4.在右侧的“工程”窗口中的空白处,点击鼠标右键,选择菜单:添加/添加文件/选择你刚才创建的资源文件“EBGSoft.res”/打开。</p><p> 5.选择菜单:文件/工程另存为,输入文件名,这里将所有的文件名均保存为“EBGSoft”(取默认扩展名)。</p><p> 6.选择菜单:文件/生成EBGSoft.dll</p><p> 搞定!</p>
页:
[1]
2