明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2763|回复: 5

能帮我优化一下吗?

[复制链接]
发表于 2002-11-30 11:25:00 | 显示全部楼层 |阅读模式
上传文件是一个dwg文件,内嵌一个vba程序,我的计划是,在vbaide后设一个程序口令,不知道的不能修改vba程序。
vba里设一对话框,输入口令,通过后修改dwg文件没有任何限制,否则,只能使用zoom,pan等命令。这个功能由锁定图层,先命令后选择,并取消不许使用的命令。
由于这个文件在acadr2002中生成,可以打开多文档,故激活别的文档时,本文档需全不可见,并将一些功能复原,当激活本文档时,可以看见本图。
本图在打开时acad能预览,但打开是什么也看不见,需要双击鼠标,这是程序设置的,如有更好的办法,请指教。
本程序只是限制拿到这个图的人只能用acad看,不能修改,除非我给密码。我看vba能嵌入很不错,很简单,所以就用了。网上有dwg文件加密的东西,但那是另编程序,我把dwg拷给别人不能也将那程序也拷了去:)
大家帮我看看?
 楼主| 发表于 2002-11-30 16:03:00 | 显示全部楼层

怎么看不到上传的rar文件?

 楼主| 发表于 2002-11-30 16:09:00 | 显示全部楼层

再上传rar文件吧

本帖子中包含更多资源

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

x
 楼主| 发表于 2002-12-1 11:40:00 | 显示全部楼层

我自己先作一点修改

对autocad加速键作了一些限制:)

本帖子中包含更多资源

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

x
发表于 2002-12-2 09:44:00 | 显示全部楼层

仔细看了你的程序,基本能满足要求

我对你的AcadDocument_BeginCommand()函数做了个小改动,这样当用户输入除Zoom等的其它任何命令时都会要求输入密码。而不必先执行PLINE命令。
Private Sub AcadDocument_BeginCommand(ByVal CommandName As String)
 On Error Resume Next
 If UserForm1.flag = 1 Then GoTo ENDMEA
  ThisDrawing.Application.Preferences.Selection.PickFirst = False
  ThisDrawing.Application.Preferences.Selection.DisplayGrips = False
  Select Case CommandName
   case "ZOOM","CLOSE","OPEN","QUIT","EXIT","HELP","LOT","UNDO","U" '这样写代码你是否觉得更为简捷?
        GoTo ENDME
   Case Else   '这是我加的代码
    UserForm1.Show 1
    If UserForm1.flag = 1 Then GoTo ENDMEA
  End Select
  SendKeys "{esc}" & "{esc}"
  Exit Sub
  ENDMEA:
   ThisDrawing.Application.Preferences.Selection.PickFirst = True
   ThisDrawing.Application.Preferences.Selection.DisplayGrips = True
   Exit Sub
  ENDME:
End Sub
不过你这样做好象只是防止DWG文件被无效编辑,我不知道你的DWG文件是否在局域网上共享,那样应该可以将文件共享为只读的(文件可以编辑但不能保存),这岂不更容易?
最后,我想说VBA代码的保密性能是很弱的。只要能看到你的代码,就能很容易地得到密码。对代码进行加密,目前好象只有一个办法,VBA编辑器中“工具”->“Project属性...”->“保护”......(大概你知道这个办法)
 楼主| 发表于 2002-12-2 13:30:00 | 显示全部楼层

多谢!

我写这个的目的就是为了别人只能看,不能修改,包括使用中间的任何局部,以至于要关掉中间的复制功能。但是,不好有附加的安装软件呀。只能将这个dwg文件给别人,很多时候别人会对这个图作出修改,所以我得限制。。。
文件是完全拷贝的,只读功能别人能改过来,所以我得在这里面加点功夫。
但是,visible = false 是没有用的,随便用一个dwg convert程序就可解密,只是我们要防备的人也只会看autocad的dwg,这段程序,足够挡着他们了。
有没有更好的思路,只是局限在这个dwg图形里的,多多指教!!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-29 00:33 , Processed in 0.189159 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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