找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 10753|回复: 50

[系统] 写启动组

[复制链接]

已领礼包: 1268个

财富等级: 财源广进

发表于 2013-7-9 17:41:26 | 显示全部楼层 |阅读模式
函数发布
函数名称: XD::AutoStartUp
调用格式: (XD::AutoStartUp path mod)
参数说明: path -- 含全路径的程序文件名
mod -- t 写所有配置的启动组
nil 写当前配置启动组
返回值:
函数简介: 将程序所在路径加入 Support 并将程序加入启动组
函数来源: 二次修改
函数作者: 网络
适用版本: 不限 
最后更新时间: 2013-07-10
备注: -
演示图片: -

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
[ 本帖最后由 st788796 于 2013-7-10 08:33 编辑 ]\n\n
  1. (defun XD::AutoStartup (path tf / Profiles allpro newnum AutoLoadpath)
  2.   (vl-load-com)
  3.   (if tf
  4.     (progn
  5.       (vla-getallprofilenames
  6. (vla-get-profiles
  7.    (vla-get-preferences (vlax-get-acad-object))
  8. )
  9. 'Profiles
  10.       )
  11.       (setq allpro (safearray-value Profiles))
  12.     )
  13.     (setq allpro (list (getvar "cprofile")))
  14.   )
  15.   (setenv "ACAD"
  16.    (strcat (getenv "ACAD") ";" (vl-filename-directory path))
  17.   )
  18.   (if (wcmatch (getvar "acadver") "19.[1-9]*")
  19.     (if tf
  20.       (mapcar '(lambda (x / trpath)
  21.    (setq trpath (strcat
  22.     "HKEY_CURRENT_USER\\"
  23.     (vlax-product-key)
  24.     "\\Profiles\\"
  25.     x
  26.     "\\Variables"
  27.          )
  28.    )
  29.    (vl-registry-write
  30.      trpath
  31.      "Trustedpaths"
  32.      (strcat (vl-registry-read trpath "Trustedpaths")
  33.       ";"
  34.       (vl-filename-directory path)
  35.       "\\..."
  36.      )
  37.    )
  38.         )
  39.        allpro
  40.       )
  41.       (setvar "TRUSTEDPATHS"
  42.        (strcat (getvar "TRUSTEDPATHS")
  43.         ";"
  44.         (vl-filename-directory path)
  45.         "\\..."
  46.        )
  47.       )
  48.     )
  49.   )
  50.   (mapcar '(lambda (x)
  51.       (setq AppLoadPath
  52.       (strcat
  53.         "HKEY_CURRENT_USER\\"
  54.         (vlax-product-key)
  55.         "\\Profiles\\"
  56.         x
  57.         "\\Dialogs\\Appload\\Startup"
  58.       )
  59.       )
  60.       (setq
  61.         NewNum
  62.   (itoa
  63.     (1+ (read
  64.    (vl-registry-read AppLoadPath "NumStartup")
  65.         )
  66.     )
  67.   )
  68.       )
  69.       (vl-registry-write AppLoadPath "NumStartup" NewNum)
  70.       (vl-registry-write
  71.         AppLoadPath
  72.         (strcat NewNum "Startup")
  73.         path
  74.       )
  75.     )
  76.    allpro
  77.   )
  78.   (princ)
  79. )

评分

参与人数 1D豆 +5 收起 理由
xshrimp + 5 很给力!经验;技术要点;资料分享奖!

查看全部评分

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 208个

财富等级: 日进斗金

发表于 2013-7-9 19:14:15 | 显示全部楼层
我看程序中很大一段是为了获取product-key,而且.楼主设定的是中文版的.
可以直接获取.
命令: (vlax-product-key)
"Software\\Autodesk\\AutoCAD\\R19.0\\ACAD-B001:804"
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-7-9 19:24:19 | 显示全部楼层
2008:

命令: (vlax-product-key)
"Software\\Autodesk\\AutoCAD\\R17.1\\ACAD-6001:804"
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-7-9 19:40:56 | 显示全部楼层
建议用正则表达式,这样写,试试:

命令: (car (XD::String:RegExpS "[^/\\\\]+$" (vlax-product-key) nil))
"ACAD-6001:804"

点评

用不上正则吧!(vlax-product-key)得到的路径直接放后面jiu可以了!  详情 回复 发表于 2013-7-9 20:37
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 344个

财富等级: 日进斗金

发表于 2013-7-9 20:37:01 | 显示全部楼层
本帖最后由 牢固 于 2013-7-9 20:44 编辑
Lispboy 发表于 2013-7-9 19:40
建议用正则表达式,这样写,试试:

命令: (car (XD::String:RegExpS "[^/\\\\]+$" (vlax-product-key) n ...

用不上正则吧!(vlax-product-key)得到的路径直接放后面jiu可以了!
  1. (defun XD::AutoStartup (path  tf   /    cadver   cprofile   item  newnum   path    prefix   regpath
  2.    str  strload  allpro   Profiles
  3.          )
  4.   (vl-load-com)
  5.   (if tf
  6.     (progn

  7.      (vla-getallprofilenames
  8.        (vla-get-profiles
  9.          (vla-get-preferences (vlax-get-acad-object))
  10.        )
  11.        'Profiles
  12.      )
  13.      (setq allpro (safearray-value Profiles))
  14.     )
  15.     (setq allpro (list (getvar "cprofile")))
  16.   )
  17.   (setq prefix (getvar "Acadprefix"))
  18.   (setenv "ACAD"
  19.    (strcat (getenv "ACAD") ";" (vl-filename-directory path))
  20.   )
  21.   (mapcar '(lambda (x)
  22.       (setq AppLoadPath
  23.       (strcat
  24.         "HKEY_CURRENT_USER\\"
  25.         (vlax-product-key)
  26.         "\\Profiles\\"
  27.         x
  28.         "\\Dialogs\\Appload\\Startup"
  29.        )
  30.       )
  31.       (setq
  32.         NewNum
  33.   (itoa
  34.     (1+ (read
  35.    (vl-registry-read AppLoadPath "NumStartup")
  36.         )
  37.     )
  38.   )
  39.       )
  40.       (vl-registry-write AppLoadPath "NumStartup" NewNum)
  41.       (vl-registry-write
  42.         AppLoadPath
  43.         (strcat NewNum "Startup")
  44.         path
  45.       )
  46.     )
  47.    allpro
  48.   )
  49.   (princ)
  50. )

点评

楼主的程序里面有段是这样写的,针对那个: [*](cond [*] ((= cadver "R16.0") (setq str "ACAD-201:804")) ;_CAD2004[/backcolor] [*] ((= cadver "R16.1") (setq str "ACAD-301:804")) ;_CAD2005[/  详情 回复 发表于 2013-7-9 21:15
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-7-9 20:39:45 来自手机 | 显示全部楼层
可以简化简化的来自: Android客户端
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 344个

财富等级: 日进斗金

发表于 2013-7-9 20:46:46 | 显示全部楼层
  1. (if tf
  2.     (setq allpro (safearray-value
  3.      (vla-getallprofilenames
  4.        (vla-get-profiles
  5.          (vla-get-preferences (vlax-get-acad-object))
  6.        )
  7.        'Profiles
  8.      )
  9.    )
  10.     )
  11.     (setq allpro (list (getvar "cprofile")))
  12.   )

这句代码错了,应该这样写==>
  1. (if tf
  2.     (progn   
  3.      (vla-getallprofilenames
  4.        (vla-get-profiles
  5.          (vla-get-preferences (vlax-get-acad-object))
  6.        )
  7.        'Profiles
  8.      )
  9.      (setq allpro (safearray-value Profiles))
  10.     )
  11.     (setq allpro (list (getvar "cprofile")))
  12.   )


点评

已根据G版提示更新,增加了R19.1的 TRUSTEDPATHS 路径  详情 回复 发表于 2013-7-10 08:35
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-7-9 21:12:27 | 显示全部楼层
本帖最后由 处处问题鸟 于 2013-7-9 21:14 编辑

程序似乎加不到启动组里去???系统 Win7 32位CAD2008

点评

安全卫士啥的是不是给拦截了?  详情 回复 发表于 2013-7-9 21:16
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-7-9 21:15:03 | 显示全部楼层
牢固 发表于 2013-7-9 20:37
用不上正则吧!(vlax-product-key)得到的路径直接放后面jiu可以了!

楼主的程序里面有段是这样写的,针对那个:


  • (cond

  •                                
    登录/注册后可看大图
        ((= cadver "R16.0") (setq str "ACAD-201:804")) ;_CAD2004

  •                                
    登录/注册后可看大图
        ((= cadver "R16.1") (setq str "ACAD-301:804")) ;_CAD2005

  •                                
    登录/注册后可看大图
        ((= cadver "R16.2") (setq str "ACAD-4001:804")) ;_CAD2006

  •                                
    登录/注册后可看大图
        ((= cadver "R17.0") (setq str "ACAD-5001:804")) ;_CAD2007

  •                                
    登录/注册后可看大图
        ((= cadver "R17.1") (setq str "ACAD-6001:804")) ;_CAD2008

  •                                
    登录/注册后可看大图
        ((= cadver "R17.2") (setq str "ACAD-7000:409")) ;_CAD2009

  •                                
    登录/注册后可看大图
        ((= cadver "R18.0") (setq str "ACAD-8001:804")) ;_CAD2010

  •                                
    登录/注册后可看大图
        ((= cadver "R18.2") (setq str "ACAD-A001:804")) ;_CAD2012  ACAD-A005:804

  •                                
    登录/注册后可看大图
        ((= cadver "R19.0") (setq str "ACAD-B002:409")) ;_CAD2013

  •                                
    登录/注册后可看大图
      )

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-7-9 21:16:35 | 显示全部楼层
处处问题鸟 发表于 2013-7-9 21:12
程序似乎加不到启动组里去???系统 Win7 32位CAD2008

安全卫士啥的是不是给拦截了?

点评

查看注册表,注册表是写进去了!打开启动组,里面没有加进去!再打开注册表,刚才写的内容就消失了!  详情 回复 发表于 2013-7-9 21:30
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-7-9 21:30:22 | 显示全部楼层
Lispboy 发表于 2013-7-9 21:16
安全卫士啥的是不是给拦截了?

查看注册表,注册表是写进去了!打开启动组,里面没有加进去!再打开注册表,刚才写的内容就消失了!

点评

不打开启动组,注册表里面就一直有? 只要打开启动组查看,注册表就没?  详情 回复 发表于 2013-7-9 21:56
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 35个

财富等级: 招财进宝

发表于 2013-7-9 21:53:19 | 显示全部楼层
新手学习了哈:loveliness:
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 51个

财富等级: 招财进宝

发表于 2013-7-9 21:56:02 | 显示全部楼层
处处问题鸟 发表于 2013-7-9 21:30
查看注册表,注册表是写进去了!打开启动组,里面没有加进去!再打开注册表,刚才写的内容就消失了!

不打开启动组,注册表里面就一直有? 只要打开启动组查看,注册表就没?

点评

经测试,写入注册表后,不能打开启动组,需退出当前的CAD,然后再打开CAD,就可以了!  详情 回复 发表于 2013-7-9 22:16
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 593个

财富等级: 财运亨通

发表于 2013-7-9 22:08:01 | 显示全部楼层
Windows 7 下测试通不过,vl-registry-write 返回 T 但是注册表没有写入
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2013-7-9 22:16:53 | 显示全部楼层
Lispboy 发表于 2013-7-9 21:56
不打开启动组,注册表里面就一直有? 只要打开启动组查看,注册表就没?

经测试,写入注册表后,不能打开启动组,需退出当前的CAD,然后再打开CAD,就可以了!

点评

写入后,是不是保存下 profile 就可以,不用重启。  详情 回复 发表于 2014-10-11 19:32
Windows 7 下和 UAC 有关,关闭 UAC 就可以正常使用 vl-registry-write  详情 回复 发表于 2013-7-9 22:19
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-12-26 03:05 , Processed in 0.524944 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表