此问题的引入是因为一个cad二次开发软件,客户要求做成绿色安装。何为绿色安装呢?软件包copy到一台电脑上(已安装CAD),双击exe,打开的界面包含自定义的菜单、菜单的图标能正确显示、每个功能能使用、能使用自定义的字体、线型、图块、图形模板。

包含以下工作:

(1)搜索当前电脑已安装的cad版本,指定待打开版本

(2)新定义配置名或添加到已有的配置中

(3)添加支持路径<保证自定义菜单图标显示,打开的图能自动搜索到字体、线型>

(4)启动对应版本自定义的arx<保证功能使用>

(5)添加自定义菜单<保证菜单显示>

下面是修改注册表实现的方法:

cad版本信息:[HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\]

指定版本缺省打开配置:[HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\R16.0\ACAD-201:804\Profiles] @=" 缺省配置"

支持路径:[HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\R16.0\ACAD-201:804\Profiles\<<配置>>\General] "ACAD"="......"

......

arx自动加载:acad.rx文件

自定义菜单的显示着实折磨了我好久,方法也想了很多,纠结阿纠结阿:

(1)写入注册表法,不知啥原因,反正菜单没显示出来

(2)在arx程序加载时acedCommand调用命令,cad完全打开后手动加载arx菜单是显示了,不过我们的目的是cad启动时加载命令,亦失败了

(3)lisp程序加载命令,因此我写了个加载命令的acaddoc.lsp放在搜索路径下,菜单是能显示了可是和杀毒软件不友好,总是被杀毒软件杀了~~~~

(4)经历了总总无奈后纠结地继续探索,此处特别鸣谢北京易楼的网友,在他的推荐下我看了“免费工具 [易楼AutoCAD插件管理器20110323版]”,贴上关键函数

#if _MSC_VER < 1500 // MFC 8.0 or earlier

extern "C" Acad::ErrorStatus ads_queueexpr(const TCHAR* lisp_expr );

#endif

ps

:早期版本需导出此函数

问题终于解决,写下此文纪念走过的路。

参考文章:

CAD启动时自动加载程序的研究http://hi.baidu.com/zzdiqarealqsuxr/item/9a607e908068008659146109

易楼AutoCAD插件管理器20110323版http://www.easylou.com/

转载于:https://blog.51cto.com/shixx/1077538

cad二次开发程序的绿色安装相关推荐

  1. 我的CAD二次开发程序中的操作excel的部分

    这是我的CAD二次开发程序中的操作excel的部分,特此分享 using System; using System.Collections.Generic; using System.Text; us ...

  2. cad自动运行dvb lisp_CAD二次开发程序的自动加载与使用

    常见的CAD二次开发程序有dvb.vlx.fas.lsp.arx和dll.在CAD中加载这几种程序之前,需要知道程序内部包括的命令,否则你加载完成了用不了. 在CAD命令窗口中输入"appl ...

  3. cad 二次开发 插入图片_CAD如何加载二次开发程序?

    CAD给我们设计师提供了众多的绘图修改命令,满足了我们一般的绘图应用,但是有时候这些命令应用起来有时候并不太方便,为了使我们的绘图命令更加方便快捷,有时候我们需要加载二次开发程序;例如:lisp.VB ...

  4. C# Cad二次开发新手入门系列教程(二)Line对象

    目录 Line对象说明 创建一个Line对象 Line对象说明 Line对象为CAD中的直线,什么是直线,严格来说CAD中的直线并非数学中定义的直线,实际上CAD的直线只是一个线段而已!那么在数学上我 ...

  5. CAD二次开发--像纬地与CASS程序一样双击桌面图标实现插件的自动挂载(不用netload也不用进入后输入挂载命令)

    先说一下我为什么要写这个文章,首先这一块我自己研究并查找了很久,始终没有很好的办法.二是网络上很多办法鱼龙混杂,要不很复杂,要不现在就已经过时了,总之不能解决问题.干脆自己写一下,防止遗忘! 要明白C ...

  6. lisp陡坎程序_(终稿)毕业论文设计_Autolisp在CAD二次开发中的应用.doc(最终版)最新版...

    <毕业论文:Autolisp在CAD二次开发中的应用.doc>由会员分享,可免费在线阅读全文,更多与<(终稿)毕业论文设计_Autolisp在CAD二次开发中的应用.doc(最终版) ...

  7. cad二次开发——自动运行dll,加载菜单(收集)

    1.自动加载dll的方法(个人觉得下面第4个方法会更方便) cad加载dll_实现CAD插件启动自动加载的三种方法_weixin_39774556的博客-CSDN博客从网上或者别处淘来的CAD插件,效 ...

  8. Delphi进行CAD二次开发教学(1)——基础学习:运行、新建、打开图形文件

    http://hi.baidu.com/piaoliuxia/blog/item/d61e03faed3bd18c9f514670.html 查看文章   [原创]Delphi进行CAD二次开发教学( ...

  9. 常用的CAD二次开发语言:AutoLISP, LISP是List Processor(表处理程序)的缩写,cad系统的第一代开发工具注意和eclipse(IDE编程环境,java实现的)

    常用的CAD二次开发语言: 1 AutoLISP 全名是LIST Processing Language,LISP是List Processor(表处理程序)的缩写,cad系统的第一代开发工具,是一种 ...

最新文章

  1. 一个高效、快速、稳定的PHP日志扩展。
  2. em算法详细例子及推导_EM算法详解(例子+推导)
  3. 分享:嵌入式Linux入门学习指导
  4. 没有安装hiredis
  5. Java学习第1天:序言,基础及配置tomcat
  6. 折线图设置圆点_Seaborn可视化 折线图seaborn.lineplot
  7. 1.8 为什么是人的表现
  8. 类成员与方法访问控制从严
  9. 祝微软北京.net俱乐部徐磊生日快乐
  10. DataGrip 格式化SQL 自定义SQL格式化
  11. JasperReport 默认打印机打印/指定打印机打印
  12. MySQL视图创建与管理(实验五)
  13. Echarts 实现环状半圆形饼图
  14. 影响国债收益率的因素
  15. 谈论bringup我们到底在谈论什么?
  16. Newline required at end of file but not found
  17. 软考高级考试中有五大证书,哪个更值得考?
  18. 微生物组学测序十大错误认知
  19. 中电信CDMA战略 CDMA+WiFi成杀手锏
  20. 怎么开发一款应用程序?

热门文章

  1. Docker容器实现原理及容器隔离性踩坑介绍
  2. VC++ 结束线程 AfxBeginThread AfxEndThread
  3. MongoDB 聚合管道(Aggregation Pipeline)
  4. RHEL6入门系列之三十一,管理计划任务
  5. 关于滑动窗口的小小小tip
  6. 连续型切片与离散加减的思路学习
  7. 低字节+高字节+字地址+大端序+小端序全辨析
  8. 0% [正在连接 cn.archive.ubuntu.com (2001:67c:1562::19)]关于其连接不上的问题:
  9. python : os.path 相关操作
  10. 计算机网络课堂笔记3.29