vb.net&cad二开自学笔记4:net程序的自动加载

开发好的netapp插件可用以下方法,实现跟随CAD的启动自动加载!

一、autolisp法

(1)启动组:创建xxx.lsp程序其中用(command "netload" 你的netapp.dll完整路径),注意路径中的\用\\代替,然后在cad中用appload命令在启动组中加载xxx.lsp

(2)修改acad.lsp或acaddoc.lsp文件内容:

(defun S::STARTUP() ;函数名不可以改变,在其内添加(command "netload" 你的netapp.dll完整路径),为了避免多个插件自动启动的冲突,可使用append函数追加命令,示例代码如下:

(defun-q MYSTARTUP ( )

... your startup function ...

)

(setq S::STARTUP (append S::STARTUP MYSTARTUP))

上面的代码把启动函数附加到现有的 S::STARTUP 函数中,然后重定义 S::STARTUP 函数以包含该启动代码。不管以前的 S::STARTUP 函数是否存在,它都可以正常工作。

二、注册表法

  1. 运行regedit命令打开注册表。

  2. 找到如下路径:

计算机\\HKEY_LOCAL_MACHINE\\SOFTWARE\\Autodesk\\AutoCAD\\R24.3\\ACAD-7101\\Applications\\AcMgd\],亦可以在注册表编辑器中搜索AcMgd 4.搜索到后一般能看到AcMgd项内应包含四个键值,项内若为空白则可手工添加如下几个值如图: "DESCRIPTION"=".NET Managed Layer" "LOADCTRLS"=dword:00000002 "LOADER"="C:\\\\Users\\\\Administrator\\\\source\\\\repos\\\\MyCADNet\\\\bin\\\\Debug\\\\MyCADNet.dll" "MANAGED"=dword:00000001 ![](https://img-blog.csdnimg.cn/img_convert/864271a40406f0d9d9423b34af328a5b.jpeg) AcMgd键值内容 上述注册表值的含义如下: **DESCRIPTION** *描述信息* **LOADCTRLS** *确定怎样加载和何时加载程序.* 1 - 检测到代理程序就加载 2 -一起动就加载 4 - 命令运行就加载 8 -用户请求或另一应用请求即加载 16 - 不加载 32 - 显式加载 **LOADER** 指定dll加载的位置及文件的全路径名称,注意路径中的\\全部用\\\\代替 **MANAGED** 指定是.NET 程序及还是ObjectARX 文件, 1 代表 .NET 程序, 0代表ObjectARX 。 这个注册表可以自己编写安装程序自动设定!

相关推荐
白雪公主的后妈3 天前
Auto CAD二次开发——创建圆弧对象
c#·cad二次开发·创建圆弧对象
VB.Net7 天前
VB.Net循序渐进(第二版)
开发语言·.net·vb.net
专注VB编程开发20年8 天前
B.NET编写不阻塞UI线程的同步延时
ui·.net·vb.net·doevents
专注VB编程开发20年9 天前
VB.NET2003和VB2008可以导入VB6项目
.net·vb.net·vb6·vb2008
专注VB编程开发20年1 个月前
vb.net编写DDE(Dynamic Data Exchange)服务器
运维·服务器·github·vb.net·dde
专注VB编程开发20年1 个月前
vb.net COM DLL 示例,实现了所有 VB6 X86 数据类型的对应
开发语言·前端·vb.net·com·vb6·activex dll
专注VB编程开发20年1 个月前
c#vb.net动态创建二维数组
windows·c#·vb.net·二维数组
专注VB编程开发20年3 个月前
IIS Express中可以同时加载并使用.net4.0和.NET 2.0的 DLL
c++·windows·microsoft·c#·vb.net
专注VB编程开发20年3 个月前
探索VB.NET中的贝塞尔Bezier曲线绘制技巧
图像处理·windows·.net·vb.net
专注VB编程开发20年4 个月前
VB.NET,C#在线程中修改UI的安全操作
ui·c#·.net·vb.net