明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1505|回复: 6

[求助]如何在DWG里面内嵌一个DVB,让该DWG无法打开?

[复制链接]
发表于 2008-5-14 17:47:00 | 显示全部楼层 |阅读模式

能不能在dwg里面内嵌一个dvb程序,让用于一打开这个dwg的时候,这个程序就自动把这个dwg关掉。

我不是无聊,这个程序用来加密的,确保这个dwg只能在某种特定的环境执行,例如我要在关掉dwg之前访问是否能ping通一个固定的IP地址,如果不能ping通,就认为是非法使用该dwg,就把这个dwg关掉,如果可以ping通,就让其执行。

我用了这个消息,可是执行到close的时候提示“图形忙”。不知道大家有没有好办法实现?
Private Sub AcadDocument_Activate()

if (not isLaw()) then    'isLaw()  函数用来判断该使用环境是否合法 
    thisdrawing.close
end if

End Sub

发表于 2008-5-14 21:18:00 | 显示全部楼层

加个doevents : sleep 10 试试

 楼主| 发表于 2008-5-14 23:34:00 | 显示全部楼层

谢谢解答,不过还是不行,不管是加在close前还是后。

分析原因如下:

加在close后肯定没用,因为就是close这句出错。

加在close前也不行,doevents仅仅是把控制权交给系统,但是Private Sub AcadDocument_Activate()这个事件只要还是没有执行完,图形永远忙。

可能用这个事件就不对,不知还有没有别的事件可以用,例如OPEN事件

发表于 2008-5-15 08:25:00 | 显示全部楼层

你这个有用吗?人家禁用宏,宏就不会运行了,你还不如将DWG设一个密码

 楼主| 发表于 2008-5-15 13:03:00 | 显示全部楼层

DWG设置密码没用,因为我这个DWG是要放到别人笔记本的,只是我不希望他拷贝给别人看,或者把笔记本带出公司看。

我的isLaw()函数中会连接公司的服务器,如果连接不上,isLaw就返回false。

这种加密实际DWG在硬盘中是明文,所以用ARX或者其他语言都没有用,只能用内嵌的DVB来实现,而且DVB不能依赖其他的动态链接库。

如果实在不行,只有采用密文的方式加密了,让DWG存在硬盘上的时候就是密文,只有再打开的时候才会自动解密,加解密过程都在后台运行,使用者不会察觉,这种加密软件我也试用了,可以达到我的要求,但是需要花钱买,自己开发又太麻烦。所以才会想用DVB内嵌的方式来完成。

发表于 2008-5-15 21:30:00 | 显示全部楼层
但是内嵌DVB也应该行不通的,打开的时候,CAD会问你是不是执行宏,如果选择不执行,那你的DVB文件是没有作用的。
发表于 2008-6-14 08:01:00 | 显示全部楼层

请问楼主,怎么弄的让图形一打开就运行DVB程序?

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-26 09:30 , Processed in 0.164974 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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