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

版权声明:本站所有文章均为博主原创,转载时请务必注明出处!商务合作www.xiecan.cc/QQ492384481 https://blog.csdn.net/u011170962/article/details/38023089

自动加载.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.注册表文件实现方法:


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


2.C#程序实现方法:


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


猜你喜欢

转载自blog.csdn.net/weixin_43712770/article/details/89967337