为什么注册表里已经加入了启动组,启动CAD后,启动组内容是空的?
为什么注册表里已经加入了启动组,启动CAD后,用Appload命令,查看启动组,内容是空的?如下图注册表如下:
HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\R17.0\ACAD-5001:804\Profiles\<<未命名配置>>\Dialogs\Appload\Startup
“1Startup”="C:\Program Files\MYCAD\My.vlx"
启动CAD,用Appload 命令,点击启动组【内容】,里面为什么是空的呢?
CAD有几个配置选项时就会出现没写对的情况。比如你有<<未命名配置>>和<<我的配置>>两项,你用的是<<我的配置>>却写注册表到<<未命名配置>>,那你必须切换正确的配置之后才会出现在启动组里。 最近我也遇到这个问题,运行下面的程序,启动组也是空的;|= 将程序加入启动组
@== (AddStartup AppName)
#== return:
par: AppName: 完整路径
sample: (AddStartup "e:\\12.lsp")
ver: by xshrimp @mjtd
by lostbalance
====================|;
(defun AddStartup (AppName / $akey $skey loadctrlnum NumStartup acadpath loader)
(setq acadpath (vl-filename-directory (findfile "acad.exe"))) ;;获取AutoCAD的安装路径
(if (= (type appname) 'STR)
(progn
(setq
$skey (strcat "HKEY_CURRENT_USER\\" (vlax-product-key) "\\Profiles\\" (getvar "CPROFILE") "\\Dialogs\\Appload\\Startup")
$akey (strcat "HKEY_CURRENT_USER\\" (vlax-product-key) "\\Applications\\AcadAppload" )
)
;;加入启动组
(setq NumStartup (vl-registry-read $skey "NumStartup"))
(if NumStartup
(progn
(vl-registry-write $skey "NumStartup" (itoa (+ 1 (atoi NumStartup))))
(vl-registry-write $skey (strcat (itoa (+ 1 (atoi NumStartup))) "Startup") AppName )
)
(progn
(vl-registry-write $skey "NumStartup" "1")
(vl-registry-write $skey "1Startup" AppName )
)
)
;;读取LoadCtrls的值,将这个值与2作“或”运算,再写回。这样可以保证AutoCAD启动时会加载Appload.arx模块。
;;不设置LOADCTRLS的话,加入启动组的程序无法正确加载,需要手动启动启动组确认后才可以
(setq loadctrlnum (vl-registry-read $akey "LOADCTRLS"))
(if loadctrlnum
(vl-registry-write $akey "LOADCTRLS" (Boole 7 loadctrlnum 2))
(vl-registry-write $akey "LOADCTRLS" 15)
)
(setq loader (vl-registry-read $akey "LOADER"))
(if (not loader)
(progn
(vl-registry-write $akey "DESCRIPTION" "AcadAppload Command Module") ;;此条可以不加,注释性内容,不影响正常启动
(vl-registry-write $akey "LOADER" (strcat acadpath "\\Appload.arx")) ;;全新安装或格式化后的AutoCAD默认不加载appload.arx,需添加
)
)
;T ;;这个T什么用?
)
nil
)
) szx025 发表于 2019-1-8 09:26
最近我也遇到这个问题,运行下面的程序,启动组也是空的
斜杠打少了
(strcat "HKEY_CURRENT_USER\\"
(vlax-product-key)
"\\\\Profiles\\"
(getvar "CPROFILE")
"\\\\Dialogs\\\\Appload\\\\Startup"
) 启动组数量那项也要修改才行。还有就是写注册表时CAD必须关闭 启动组数量也写了。"NumStartup"="1"。
关了CAD,重新写了一遍还是不行。
CAD支持路径也都加了,
CAD试了2004、2006、2007,还都不行。
这是怎么回事呢? 目前科学家暂时无法解释这种现象,只能用RP问题来解释了. 我也遇到了这个问题,郁闷了 ,折腾了一晚上也是不知其解。注册表里确实写上了,一启动cad就清空了。
如果单独写reg文件则又可以 简直是开国际玩笑,cad怎么知道我注册表是怎么写上去的?
如果是程序写入的话,在WIN7系统中由于安全问题,可能被系统拒绝了,XP应该无此问题 帮你顶起,同问 这个问题现在有解决办法了吗?顶一下!
页:
[1]
2