软件注册站
热情软件屋

 
如何实现ActiveX控件在VB环境可以编译,但一运行就提示没有许可
编号: QA002591    
建立日期: 2000年2月17日 最后修改日期: 2000年2月17日
所属类别: Visual Basic - ActiveX技术
   
    编程工具: vb
    操作系统: windows
    有个ActiveX控件注册时生成.lic文件,在VB环境下,不注册可以试用,编译时也无问题,但一运行就提示没有许可,然后程序退出。不知是如何实现的。另外,如何让控件结束呢,就象上述问题一样。(bill)
   
    当在VB环境中要使用一个控件时,VB会调用ActiveX控件的VerifyUserLicense函数,如果函数返回TRUE,就说明用户有合法的许可,可以在VB环境中使用。在编译成EXE或DLL后,VB调用ActiveX控件的GetLicenseKey函数获得运行许可,并把这个许可写入EXE或DLL。当程序脱离集成环境运行时,EXE程序调用ActiveX控件的VerifyLicenseKey函数判断写在EXE中的运行许可是否正确,如果正确则可以运行程序,否则就会出现你说的没有许可并使程序退出。在VC中很容易实现你要的功能,只需要在VerifyUserLicense函数中永远返回TRUE。如果没有购买软件,GetLicenseKey函数返回一个错误的许可,这样VerifyLicenseKey函数就知道你是使用非法版本编译的,拒绝运行。我自己的CheckListBox控件(http://china.zealsoft.com/cn/checklistbox/)就采用了这样的技术。但在VB中无法实现这些功能,原因是VB自动提供这三个函数,你无法定制。
    采用这种技术也有如下缺点:
    1、这样的控件只能在VB中使用,因为在VC++和Delphi等软件中即使在集成环境中调试也需要运行许可。
    2、对VB 4.0无效。VB 4.0的EXE程序不检查运行许可。
    相关问题:
    QA002506 "如何检查编译后控件的合法性"

    

此问题由李海回答。

附加关键字:编程, 源程序, programming, source code, Visual Basic, VB, ActiveX技术, activex, com, ado

   
 
把这个问题推荐给朋友
   
 
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio