- 积分
- 3266
- 明经币
- 个
- 注册时间
- 2002-7-5
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
发表于 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属性...”->“保护”......(大概你知道这个办法) |
|