明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2123|回复: 7

请教几个vb方面的问题

[复制链接]
发表于 2004-1-10 22:06:00 | 显示全部楼层 |阅读模式
1.windows中有什么文件时每次启动都要读写的文件,我想通过获得这个文件的访问时间来获得系统真正的日期.
2.acad vba中怎样创建鼠标右键菜单.vb中用"菜单编辑器"创建菜单来实现,vba中没有"菜单编辑器",该怎么做?
3.由于vb的dll编程时无法调试,我现在是在acad vba中调试,等全部调试通过后再把所有源程序用vb打开,再编译成dll.请问源文件需要做些什么修改?或者编dll有什么方法调试?
4.vb中如何获得acad的安装路径?
发表于 2004-1-10 22:19:00 | 显示全部楼层
1、注册表的文件肯定会有读写的。是System.dat和User.dat。其实通过读取系统时间就行了。
2、右键菜单是通过菜单的shortcutMenu属性来判断,如果为True,那么它就是快捷菜单,快捷菜单只有一项。
3、DLL需要新建一个工程进行调试,也可以直接编写标准的工程,等完工之后再转化成ActiveX DLL。
VBA中编写之后转到VB,需要增加跟ACAD的接口部分,并把所有的ThisDrawing更改为自己的ActiveDocument对象。
 楼主| 发表于 2004-1-10 22:30:00 | 显示全部楼层
1.win98,nt,2000,xp 下不一样吧,2000等好像没有这个文件.主要是要限制软件使用时间,读取系统时间容易被修改.
2.能不能详细点,cad帮助上关于menu的实在看不懂.能否给个源程序?
3."需要增加跟ACAD的接口部分"是什么意思,具体怎么改?在vba中我都是用activedocument.
4.在vb中获得acad安装路径??
发表于 2004-1-10 22:35:00 | 显示全部楼层
获取接口:getobject(,"autocad.application")
发表于 2004-1-10 23:36:00 | 显示全部楼层
mikewolf2k发表于2004-1-10 22:30:001.win98,nt,2000,xp 下不一样吧,2000等好像没有这个文件.主要是要限制软件使用时间,读取系统时间容易被修改.
2.能不能详细点,cad帮助上关于menu的实在看不懂.能否给个源程序?
3."需要



对于1,系统时间更改了,那些文件的时间也变了,所以通过这个方法不可取,应该在每次运行时,判断前一次运行的时间,只能增大。
2、帮助中就有示例。

  1.     Dim currMenu As AcadPopupMenu
  2.     Dim menuStatus As String
  3.    
  4.     menuStatus = ""
  5.     For Each currMenu In ThisDrawing.Application.MenuGroups.Item(0).Menus
  6.     If currMenu.shortcutMenu Then
  7.         menuStatus = menuStatus & currMenu.name & " is the shortcut menu." & vbCrLf
  8.     Else
  9.         menuStatus = menuStatus & currMenu.name & " is not the shortcut menu." & vbCrLf
  10.     End If
  11.     Next currMenu
  12.     MsgBox menuStatus

3、开人发员手册的介绍。

  1. Sub Ch2_ConnectToAcad()
  2.     Dim acadApp As AcadApplication
  3.     On Error Resume Next
  4.    
  5.     Set acadApp = GetObject(, "AutoCAD.Application")
  6.     If Err Then
  7.         Err.Clear
  8.         Set acadApp = CreateObject("AutoCAD.Application")
  9.         If Err Then
  10.             MsgBox Err.Description
  11.             Exit Sub
  12.         End If
  13.     End If
  14.     MsgBox "Now running " + acadApp.Name + _
  15.            " version " + acadApp.Version
  16. End Sub

  17. Dim acadDoc as AcadDocument
  18. Set acadDoc = acadApp.ActiveDocument

4、安装路径一是通过注册表读取,二是使用Application的Path属性吧。
 楼主| 发表于 2004-1-11 00:32:00 | 显示全部楼层
1.一般对付限制使用时间的软件,是运行该软件前把时间改到有效期内,软件运行完毕后再改回来.而始终把日期放到有效期内的好像不多.所以我想获得每次启动都读写的文件日期.
2.不知道怎样创建自己的右键菜单啊~~~
4.能否在详细些.我太菜啦.
谢谢谢谢谢谢!!!
 楼主| 发表于 2004-1-13 18:57:00 | 显示全部楼层
再顶顶
发表于 2004-1-15 10:31:00 | 显示全部楼层
4、安装路径一是通过注册表读取,二是使用Application的Path属性吧。
楼上的已经写得很详细了。

  1. Public Sub AppPath()
  2.   MsgBox ThisDrawing.Application.path
  3. End Sub
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-28 09:48 , Processed in 0.192435 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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