Sub AutoADDAutoCADTypeLib()
Dim Ref As Variant
Dim hasAutoTypeLib As Boolean, hasAXDBLib As Boolean, acadName As String
hasAutoTypeLib = False: hasAXDBLib = False
For Each Ref In ThisWorkbook.VBProject.References
If Ref.Name = "AutoCAD" Then hasAutoTypeLib = True
If Ref.Name = "AXDBLib" Then hasAXDBLib = True
Next Ref
Dim wshell As Object
Set wshell = CreateObject("WScript.Shell")
Dim strAcadShardFd As String, acadCurVer1 As String, acadCurVer2 As String, acadLanguage As String
'读取cad的版本
acadCurVer1 = wshell.regread("HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\CurVer")
'读取cad的语言版本
acadCurVer2 = wshell.regread("HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\" & acadCurVer1 & "\CurVer")
'读取cad的最后一次启动的语言版本
acadLanguage = wshell.regread("HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\" & acadCurVer1 & "\" & acadCurVer2 & "\AllUsersFolder")
Dim LanguagePath As Variant, acadVer As String
LanguagePath = VBA.Split(acadLanguage, "\")
acadVer = VBA.Mid(acadCurVer1, , ) & LanguagePath(UBound(LanguagePath) - )
acadName = LanguagePath(UBound(LanguagePath) - )
'读取cad的64位类型库的路径
strAcadShardFd = wshell.regread("HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\" & acadCurVer1 & "\" & acadCurVer2 & "\AutodeskSharedFolder") '读取cad的32位类型库的路径
'strAcad32ShardFd = wshell.regread("HKEY_CURRENT_USER\Software\Autodesk\AutoCAD\" & acadCurVer1 & "\" & acadCurVer2 & "\AutodeskShared32Folder") Set wshell = Nothing If hasAutoTypeLib = False Then
ThisWorkbook.VBProject.References.AddFromFile (strAcadShardFd & "acax" & acadVer & ".tlb")
MsgBox acadName & " AutoCAD Type Lib Already add to referecne scucces"
Else
MsgBox "AutoCAD Type Lib Already add to referecne, no need add aagin"
End If
If hasAXDBLib = False Then
ThisWorkbook.VBProject.References.AddFromFile (strAcadShardFd & "axdb" & acadVer & ".tlb")
MsgBox acadName & " AXDBLib Already add to referecne scucces"
Else
MsgBox "AXDBLib Already add to referecne, no need add aagin"
End If
End Sub

最新文章

  1. 《Entity Framework 6 Recipes》中文翻译系列 (43) ------ 第八章 POCO之使用POCO加载实体
  2. strlen 字符型数组和字符数组 sizeof和strlen的区别 cin.get(input,Arsize)
  3. Web.config配置文件详解
  4. 如何对具有端点加密功能的LINE进行取证
  5. 使用SEP禁止客户端修改IP地址 - 飞舞的菜刀 - 51CTO技术博客
  6. 兼容性调试-- 在谷歌浏览器中,td 设置colspan的失效的问题
  7. 怎样加入� android private libraries 中的包的源码
  8. 如何使用 Laravel Facades ?
  9. android studio 新建项目 界面一直停在 【“building ‘ 项目名’ gradle project info”】
  10. (转载)解决WPF动画属性锁死问题
  11. python中的有趣用法
  12. ADN中国团队參加微软的Kinect全国大赛获得三等奖
  13. Spring Resource之作为依赖的资源
  14. 1张图看懂RAID功能,6张图教会配置服务器【转】
  15. JS数组及内置对象
  16. Nginx + IIS实现负载均衡 Session多站点共享
  17. python_while
  18. 感受野RF的计算
  19. python3下调用系统massagebox对话框
  20. 【读书笔记】iOS-Game Kit

热门文章

  1. SLAM中的逆深度参数化
  2. Improving RGB-D SLAM in dynamic environments: A motion removal approach
  3. Docker技术入门与实战
  4. python分析BOSS直聘的某个招聘岗位数据
  5. Python内置OS模块用法详解
  6. Mixed Precision Training —— caffe-float16
  7. 前端面试 vue 部分 (5)——VUE组件之间通信的方式有哪些
  8. 22、Command 命令模式
  9. Springboot日志LOGO改变和设计
  10. C#算法设计排序篇之04-选择排序(附带动画演示程序)