明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2139|回复: 5

[求助]对于多文档的cad,用vba怎样强制使cad退出

[复制链接]
发表于 2003-9-5 13:28:00 | 显示全部楼层 |阅读模式
我现在的想法是,想限制vba程序的使用者,也就是说只能允许某一台计算机使用。
于是我想起龙龙仔斑竹曾经提出的lisp方法,限制使用者---通过提取登陆用户名来做相应判断是否有权限即
Dim sCurUser$
   sCurUser = Environ("USERNAME")
      If sCurUser = "123" Then
        .......
     else
        强制cad退出
      end
请问:
当然这种方法也有弊端,还有其它好方法吗?
对于多文档的cad,用vba怎样强制使cad退出?
发表于 2003-9-5 13:55:00 | 显示全部楼层
使用API函数。
如:TerminateProcess GetCurrentProcess, 0
TerminateProcess函数是结束指定进程号的进程。
GetCurrentProcess函数返回当前进程号。
 楼主| 发表于 2003-9-5 14:09:00 | 显示全部楼层
呀!老朋友,久违了。出差回来了吗?怎么也不联系,这段时间我也挺忙的。你出去那段时间可真不方便啊!
发表于 2003-9-5 15:36:00 | 显示全部楼层
如果强制结束进程,这样也太具杀伤力了.万一要是数据没有保存,损失可大可小.相信这样的软件,绝不利于推广.
要限制VBA的使用权,更好的办法是将大部份代码用VB编译成ActiveXDll文件,在VBA中引用.
这样在DLL文件中就可以作注册或限制的功能.
 楼主| 发表于 2003-9-6 08:21:00 | 显示全部楼层
zeng29说的也是。还有如果更改一下登陆用户名,那么程序又可以运行了,这也起不到限制的作用。zeng29朋友听你说的方法好像有道理,有实用价值,更具专业性。
   但我不知道怎样在vba中引用dll文件?
   在DLL文件中作注册或限制的功能,具体如何实现呢?
发表于 2003-9-6 10:18:00 | 显示全部楼层
首先用VB编写ActiveXDll工程,在ActiveXDll工程中引用AutoCAD Type Library类型库,通过类型库的AcadApplication与AutoCADVBA中的Application间传递数据和执行方法.在VB中生成ActiveXDLL文件后,在VBA中的引用列表中就会出现你的ActiveXDll类,引用以后就可以调用ActiveXDll中的代码,在VBA中能作的事在ActiveXDll都可以作.具体的注册和限制的方法依个人习惯,如可以用API取得硬盘序列号,通过特定的算法得到Key,注册后才能使用等.
当软件移植到别的系统时调用regsvr32.exe对ActiveXDll进行注册,这样软件才能使用.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-28 14:29 , Processed in 0.166770 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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