明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1866|回复: 6

[求助]高手请进!

[复制链接]
发表于 2003-11-13 19:33:00 | 显示全部楼层 |阅读模式
小弟现在遇到一个问题
我现在在制作CAD外挂的安装程序,需要自动将AutoCAD下的acad××doc.lsp文件用我自己编写的lsp程序覆盖,请问如何通过*.bat和VB得到解决?谢谢了,急!!!!
发表于 2003-11-13 19:38:00 | 显示全部楼层
首先要知道ACAD的路径,再找到它,然后备份(不推荐直接覆盖),再拷贝自己的文件。
ACAD的路径获取,一是运行ACAD,然后根据它的属性来返回,二是查找注册表。
发表于 2003-11-13 21:06:00 | 显示全部楼层
copy命令 或 copy方法
 楼主| 发表于 2003-11-13 23:14:00 | 显示全部楼层
这个思路是不错,我想过程大概是这样的:先通过VB找到cad的AcadLocation键值,然后将lsp的文件名全路径表示出来,再通过VB的shell功能或者打开文件进行追加实现我的目的,请问能否提供VB的代码,我由于对VB和注册表的操作不熟悉,现在很急,只知道可以利用API实现这些东西,还望高手赐教,我的邮箱qijiun@etang.com,3ks a lot!!
 楼主| 发表于 2003-11-14 17:19:00 | 显示全部楼层
现在我编出来一段了,你能否看看?

Private Sub Form_Load()
Form1.Hide
Dim Temp As String
Dim File(1) As String
Dim Ver As String
Dim Path(1) As String
Dim Nkeyhandle As Long, Nvaluetype As Long, Nlength As Long
Dim objFSO As FileSystemObject
Dim objText As TextStream

Path(0) = "HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R15.0"
Path(1) = "HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R16.0\ACAD-201:804"
Call RegOpenKey(Path(0), "curver", Nkeyhandle)
Call RegQueryValueEx(Nkeyhandle, "curver", 0, Nvaluetype, Ver, Nlength)
Path(0) = Path(0) + "\" + Ver
里边Call RegOpenKey里的path(0)有问题,不知道怎么能够解决呢:(因为项里边有点,所以不能直接拼写)
谢谢!!
发表于 2003-11-14 19:22:00 | 显示全部楼层
用法有错误吧。RegOpenKey只能取到项值(相当于路径),"HKEY_LOCAL_MACHINE\SOFTWARE\Autodesk\AutoCAD\R15.0",而不能直接键值。有点类似于文件的操作,首先使用RegOpenKey打开目录,然后使用RegQueryvalueEx操作文件。
应该是:
Const HKEY_LOCAL_MACHINE = &H80000002
Call RegOpenKey(HKEY_LOCAL_MACHINE, "SOFTWARE\Autodesk\AutoCAD\R15.0", Nkeyhandle)
Call RegQueryvalueEx(Nkeyhandle, "curver", 0, Nvaluetype, Ver, Nlength)
 楼主| 发表于 2003-11-20 19:23:00 | 显示全部楼层
嗯,现在知道怎么用了:)
谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-28 13:29 , Processed in 0.176686 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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