spshchen发表于2005-4-10 9:39:00 好东西,但是我不知道,如何增加支持 文件搜索路径. 这个我会稍后写个教程解释一下。 我先贴一段例程,这段你可以参考修改后加到启动时自动加载的文件中去。 - ;; 取得本安装程序的路径
- ;; AppID即为本次安装所使用的ID
- (defun GetApplicationPath (AppID)
- (vl-registry-read
- (strcat
- "HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\"
- AppID
- "_is1"
- )
- "Inno Setup: App Path"
- )
- );;;AddSupportPath
- ;;;添加文件夹到AutoCAD支持搜索路径中的指定位置
- ;;;参数
- ;;;文件夹路径及插入的位置(0时插入前端)
- ;;;示例
- ;;;(addSupportPath "c:\\myFolder" 2)
- ;;;注意
- ;;;位置参数为空时将文件夹添加到路径最后。位置参数为0时将文件夹添加到路径最前端。
- (defun addSupportPath (dir pos / tmp c)
- (setq tmp ""
- c -1
- )
- (if (not pos)
- (setq tmp (strcat (getenv "ACAD") ";" dir))
- (mapcar '(lambda (x)
- (setq tmp (if (= (setq c (1+ c)) pos)
- (strcat tmp ";" dir ";" x)
- (strcat tmp ";" x)
- )
- )
- )
- (parse (getenv "ACAD") ";")
- )
- )
- (setenv "ACAD" tmp)
- (princ)
- );;;removeSupportPath
- ;;;从AutoCAD支持搜索路径中移去指定文件夹
- ;;;参数
- ;;;所要移去的文件夹
- ;;;示例
- ;;;(removeSupportPath "c:\myFolder")
- (defun removeSupportPath (dir / tmp)
- (setq tmp "")
- (mapcar '(lambda (x)
- (if (/= (strcase x) (strcase dir))
- (setq tmp (strcat tmp x ";"))
- )
- )
- (parse (getenv "ACAD"))
- )
- (setenv "ACAD" (substr tmp 1 (1- (strlen tmp))))
- (princ)
- );; 加载菜单样例:
- (defun AddDemoMenu ()
- (if (menugroup "DemoMenu") ; 菜单组名为DemoMenu, 已经加载
- (progn
- (command "_menuunload" "DemoMenu")
- (command "_menuload" "DemoMenu.mnu")
- (menucmd "p8=+DemoMenu.pop1")
- (menucmd "p9=+DemoMenu.pop2")
- (menucmd "p10=+DemoMenu.pop3")
- (princ "\n DemoMenu 菜单载入.")
- )
- (progn
- (command "_menuload" "DemoMenu.mnu")
- (menucmd "p8=+DemoMenu.pop1") ; 插在第8个位子
- (menucmd "p9=+DemoMenu.pop2") ; 插在第8个位子
- (menucmd "p10=+DemoMenu.pop3") ; 插在第10个位子
- (princ "\n DemoMenu 菜单载入.")
- )
- )
- )
|