明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3457|回复: 19

[求助]怎么让函数只在第一次打开CAD时运行

  [复制链接]
发表于 2008-9-30 18:49:00 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2008-9-30 19:02:16 编辑

做了一个启动画面,加入启动组后每次打开图形都启动,怎样才能只在第一次打开CAD时运行?

是不是有哪个系统变量可以判断CAD是否启动呢.我只知道放在ACAD.LSP里,再设置ACAD.LSP只第一次加载,不用ACAD.LSP呢?

源程序:

(defun test( / rndobj)
  (setq rndobj (vlax-create-object "showbmp.vbmpApp"))
  (vlax-invoke-method rndobj "vbmp" (vla-get-ActiveDocument (vlax-get-acad-object)))
  (princ)
)

DLL文件:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2008-10-1 12:00:00 | 显示全部楼层
好象VBA只在打开CAD时加载,怎么检测VBA已加载呢?
发表于 2008-10-1 12:11:00 | 显示全部楼层
能否说说你的程序怎么用!
 楼主| 发表于 2008-10-1 12:28:00 | 显示全部楼层
把下的VBMP.DLL放在SYSTEM32目录下,运行"regsvr32 vbmp.dll"注册DLL,在CAD中加载上面的代码,命令行输入(TEST)就看到结果了.
 楼主| 发表于 2008-10-1 12:31:00 | 显示全部楼层
谁能帮我把上面的LISP代码改成VBA代码,我在VBA里运行.
发表于 2008-10-2 22:20:00 | 显示全部楼层

可以在注册表里做记号解决

发表于 2008-10-3 22:16:00 | 显示全部楼层
支持6楼的做法
 楼主| 发表于 2008-10-4 12:35:00 | 显示全部楼层
zhang8755发表于2008-10-2 22:20:00可以在注册表里做记号解决

可是退出时又怎么删除做记号呢,如果不删除,头一次也不会运行了.

发表于 2008-10-4 12:59:00 | 显示全部楼层

用黑板,外部文件,注册表等都可以达到你的要求.

发表于 2008-10-28 12:59:00 | 显示全部楼层
本帖最后由 作者 于 2008-10-28 13:02:01 编辑

请教楼主,怎么把BMP大包进DLL啊???我按照下面的方法制作好DLL后,在运行你的test,返回错误: 参数类型错误: VLA-OBJECT nil

但是运行你的DLL时,是可以的!!!我作的DLL同样命名为VBMP.DLL,就是不行,请指教

现在以建立“EBGSoft.dll”文件作为示例:

      1.建立一个目录(如“bmp”),将图标文件全部放入该目录。注意,图标文件应为位图文件(*.bmp)。

      2.利用“EBG_ResourceTool.exe”创建资源文件“EBGSoft.rc”及“EBGSoft.res”。
        注意:要想创建成功,必须在电脑的C盘或D盘安装有VB程序(安装在默认路径)。

      3.启动VB,选择菜单:文件/新建工程/选择“ActiveX DLL”/确定。

      4.在右侧的“工程”窗口中的空白处,点击鼠标右键,选择菜单:添加/添加文件/选择你刚才创建的资源文件“EBGSoft.res”/打开。

      5.选择菜单:文件/工程另存为,输入文件名,这里将所有的文件名均保存为“EBGSoft”(取默认扩展名)。

      6.选择菜单:文件/生成EBGSoft.dll

      搞定!

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-9-21 14:03 , Processed in 0.223746 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表