AutoCAD.NET自动加载自己开发的程序集dll

自动加载.NET开发的DLL程序库需要修改注册表信息HKEY LOCAL_ MACHINE下的AutoCAD相应版本下的Application项下创建一个新项里而设以下四个键值:

"DESCRIPTION"(应用程序描述)

"LOADC丁RLS"(加载控制一控制程序随CAD加载的方式,设为0x02随CAD启动一起加载)

"LOADER"(应用程序路径)

"MANAG ED"(程序形式一设为0x01,告诉CAD这是托管程序)

注:
1、具体各版木对应的注册表信息见附录。
2、注册表键值”LOADCTRLS',控制说明,控制ARX程序的加载方式
0x01:  Load the application upon detection of proxy object.当代理对像被控知时另载相应ARX程序.
0x02:  Load the application upon AutoCAD startup.当AutoCAD启动时加载相应ARX程序.
0x04:  Load the application upon invocation of a command.当输入命令时加载相应ARX程序.
0x08:  Load the application upon request by the user or another application.当有用户或别的程序请求时加载相应ARX程序.
0x10:  Do not load the application.从不加载该应用程序.
0x20:  Load the application transparently.显式加载该应该程序.


1.注册表文件实现方法:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R18.0\ACAD-8001:804\Applications\XXX]
"DESCRIPTION"="MyDll"
"LOADCTRLS"=dword:00000014
"LOADER"="X:\\XXX.dII"
"MANAGED"=dword:00000001
把以上文木复制到一个文木文件中,再把扩展名改为reg运行后,启动AutoCAD应用程序就会自动加载”X:\\XXX.dII',应用程序。


2.C#程序实现方法:

        private static void AutoLoad(string dname, string desc, string dpath)
        {
            RegistryKey LocaIMachine=Registry.LocaIMachine;
            RegistryKey Applications=
LocaIMachine.OpenSubKey("SOFTWARE\\Autodesk\\AutoCAD\\R18.0\\ACAD-8001:804\\Applications", true);
            RegistryKey MyPrograrm=Applications.CreateSu bKey(dname);
            MyPrograrm.SetValue("DESCRIPTION", desc, RegistryValueKind.String);
            MyPrograrm.SetValue("LOADCTRLS", 14, RegistryValueKind.DWord);
            MyPrograrm.SetValue("LOADER", dpath, RegistryValueKind.String);
            MyPrograrm.SetValue("MANAGED", 1, RegistryValueKind.DWord);
          }
注:需要引用Microsoft.Win32命名空间。

AutoCAD.NET自动加载自己开发的程序集dll_第1张图片

你可能感兴趣的:(C#,+,AutoCAD)