szswgswg 发表于 2011-10-21 11:33:14

为什么注册表里已经加入了启动组,启动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 命令,点击启动组【内容】,里面为什么是空的呢?


cabinsummer 发表于 2011-10-21 18:40:09

CAD有几个配置选项时就会出现没写对的情况。比如你有<<未命名配置>>和<<我的配置>>两项,你用的是<<我的配置>>却写注册表到<<未命名配置>>,那你必须切换正确的配置之后才会出现在启动组里。

szx025 发表于 2019-1-8 09:26:48

最近我也遇到这个问题,运行下面的程序,启动组也是空的;|= 将程序加入启动组
@== (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
)
)

菜卷鱼 发表于 2020-7-11 10:35:13

szx025 发表于 2019-1-8 09:26
最近我也遇到这个问题,运行下面的程序,启动组也是空的

斜杠打少了
(strcat "HKEY_CURRENT_USER\\"
                       (vlax-product-key)
                       "\\\\Profiles\\"
                       (getvar "CPROFILE")
                       "\\\\Dialogs\\\\Appload\\\\Startup"
               )

VBALISPER 发表于 2011-10-21 13:44:32

启动组数量那项也要修改才行。还有就是写注册表时CAD必须关闭

szswgswg 发表于 2011-10-21 15:51:54

启动组数量也写了。"NumStartup"="1"。
关了CAD,重新写了一遍还是不行。
CAD支持路径也都加了,
CAD试了2004、2006、2007,还都不行。
这是怎么回事呢?

VBALISPER 发表于 2011-10-21 17:21:01

目前科学家暂时无法解释这种现象,只能用RP问题来解释了.

s305040093 发表于 2012-1-13 00:53:21

我也遇到了这个问题,郁闷了 ,折腾了一晚上也是不知其解。注册表里确实写上了,一启动cad就清空了。
如果单独写reg文件则又可以 简直是开国际玩笑,cad怎么知道我注册表是怎么写上去的?

geabus 发表于 2012-2-1 12:27:46

如果是程序写入的话,在WIN7系统中由于安全问题,可能被系统拒绝了,XP应该无此问题

ezj2008 发表于 2012-3-4 22:22:53

帮你顶起,同问

teykmcqh 发表于 2015-3-24 18:47:43

这个问题现在有解决办法了吗?顶一下!
页: [1] 2
查看完整版本: 为什么注册表里已经加入了启动组,启动CAD后,启动组内容是空的?