AutoCAD.net让AutoCAD启动时自动加载应用程序

方法一:
1. 在AutoCAD安装目录找到c:\Program Files\AutoCAD 2006\Support\acad2006.lsp
用记事本打开,在最后加入(下段代码第二行即可,注意路径)
(if (not (=  (substr (ver) 1 11) "Visual LISP")) (load "acad2006doc.lsp"))
(command "netload" "C:\\MXCAD\\bin\\Debug\\MXCAD.dll")
;; Silent load.
(princ)

2. AutoCAD设置(重要,必须设置):
工具-选项-文件-支持文件搜索路径-添加-浏览到MXCAD路径

方法二:
修改注册表,新建记事本文件,重命名为netload.reg,加入以下内容,然后双击文件将信息添加到注册表即可。

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R16.2\ACAD-4001:804\Applications\MXCAD]
"LOADER"=" C:\\MXCAD\\bin\\Debug\\MXCAD.dll"
"MANAGED"=dword:0001c101
"LOADCTRLS"=dword:0001c102
"LOADCTRLS":控制程序随CAD加载的方式,设为Ox02随CAD启动一起加载;
"LOADER":告诉CAD所要加载的程序的路径;
"MANAGED":设为Ox01,告诉CAD这是托管程序。
-----------------------------
附注:注册表键值"LOADCTRLS"控制说明,控制ARX程序的加载方式(上例中使用的是Ox02随CAD启动一起加载)

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.
   显式加载该应该程序.(不知该项译法是否有误)
-----------------------------
打包时,将上述注册表项添加到注册表中,即可实现安装时自动配置。

         private  bool WriteRegistryKey()
         {
            try
            {
                RegistryKey localMachine = Registry.LocalMachine;
                RegistryKey SOFTWARE = localMachine.OpenSubKey("SOFTWARE"true);
                RegistryKey Autodesk = SOFTWARE.OpenSubKey("Autodesk"true);
                RegistryKey AutoCAD = Autodesk.OpenSubKey("AutoCAD"true);
                RegistryKey R16_2 = AutoCAD.OpenSubKey("R16.2"true);
                RegistryKey ACAD = R16_2.OpenSubKey("ACAD-4001:804"true);
                RegistryKey Applications = ACAD.OpenSubKey("Applications"true);

                RegistryKey MXCAD = Applications.CreateSubKey("MXCAD");
                MXCAD.SetValue("LOADCTRLS"0x02);
                MXCAD.SetValue("LOADER"this.targetdir + @"bin\Debug\MXCAD.dll");
                MXCAD.SetValue("MANAGED"0x01);
                return true;
            }

            catch
            {
                return false;
            }

        }
AutoCAD手册代码如下:
    [CommandMethod("RegisterMyApp")]
        public void RegisterMyApp()
        {
            //获取应用程序键
            string acadRootKey = HostApplicationServices.Current.RegistryProductRootKey;
            string myWantKey = "MyApp";
            RegistryKey registiryKey = Registry.CurrentUser.OpenSubKey(acadRootKey);
            RegistryKey registitryAppKey = registiryKey.OpenSubKey("Applications", true);
            string[] strAppSubName = registitryAppKey.GetSubKeyNames();
            foreach (string strName in strAppSubName)
            {
                if (strName.Equals(myWantKey))
                {
                    //有就删了,添加当前的
                    registitryAppKey.DeleteSubKey(myWantKey);
                }
            }
            //获得模块位置
            string assLocation = Assembly.GetExecutingAssembly().Location;

            //这时候没有这个key了 直接添加
            RegistryKey myKey = registitryAppKey.CreateSubKey(myWantKey);
            myKey.SetValue("DESCRIPTION", myWantKey, RegistryValueKind.String);
            myKey.SetValue("LOADCTRLS", 14, RegistryValueKind.DWord);
            myKey.SetValue("LOADER", assLocation, RegistryValueKind.String);
            myKey.SetValue("MANAGED", 1, RegistryValueKind.DWord);
            myKey.Close();
        }

        [CommandMethod("UnregisterMyApp")]
        public void UnregisterMyApp()
        {
            // 获得 AutoCAD 应用程序注册表键
            string acadRootKey = HostApplicationServices.Current.RegistryProductRootKey;
            string myWantKey = "MyApp";

            RegistryKey registiryKey = Registry.CurrentUser.OpenSubKey(myWantKey);
            RegistryKey registitryAppKey = registiryKey.OpenSubKey("Applications", true);

            // 删除应用程序键  
            registitryAppKey.DeleteSubKeyTree(myWantKey);
            registitryAppKey.Close();
        }
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 我可以回答你的问题。AutoCAD.NETAddinWizard是一款可以帮助开发人员快速创建AutoCAD插件的工具。它提供了一个向导,帮助用户创建新的项目并自动配置所需的文件和代码结构。这个工具还可以帮助开发人员添加自定义命令、工具栏和菜单,以及处理AutoCAD应用程序的各种事件。 ### 回答2: AutoCAD.NET Addin Wizard是一个为了方便在AutoCAD中开发插件的工具,可以帮助开发人员快速创建和部署自定义的AutoCAD插件。这个工具提供了一个可视化的界面,可以在几个简单的步骤中创建插件项目。 使用AutoCAD.NET Addin Wizard,开发人员可以轻松创建插件,并为其指定必要的配置和设置。该工具提供了许多可自定义的选项,如插件的命名空间、模板代码、图标、欢迎界面等。开发人员可以根据自己的需求选择适当的选项,并针对特定的功能开发自己的插件。 除了创建项目,AutoCAD.NET Addin Wizard还提供了一些其他的功能来帮助开发人员快速开发和测试插件。例如,它可以自动生成一些基本的插件代码,包括加载、卸载和自定义命令的定义。此外,该工具还提供了一个集成的调试器,可以轻松地调试插件的代码并查找潜在的问题。 使用AutoCAD.NET Addin Wizard,开发人员可以显著减少插件开发的时间和工作量。它提供了一个简单而强大的工具,使开发人员能够专注于插件的功能而不必处理繁琐的项目设置。通过这个工具,开发人员可以更加高效地创建和调试AutoCAD插件,为用户提供更好的使用体验和功能扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值