自动加载.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命名空间。 版权声明:本文为u011170962原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。