讓AutoCAD啟動時自動載入應用程式

量子物理學發表於2016-04-25
方法一:
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;
            }

        }

相關文章