中华网通行证
用户名 密码
  科技动态 硬件广场 下载基地 网络教室 网络冲浪 科学博览 移动时代 手机上网 桌面壁纸 科技商情  

给你的应用程序加把锁
李峰 2000-10-25 10:15:39

  你的应用系统开发完成后,为了检测系统的质量,往往要给一些用户一个试用版,在系统中设置一个试用期,试用期结束后就提示用户注册,同时应用系统也不再运行,这样就能充分保证你的成果不被侵犯、保证开发质量,同时又有助于销售的一种有效手段。注册表功能的使用,可有效地保障这一切。

  在我们大量使用的 Windows 95/98、NT或更高版本的Windows操作系统中,注册表是保存系统的软硬件配置信息和用户信息的数据库。注册表中的数据决定了它就是Windows操作系统的最核心部件,应用程序都选择在注册表中保存其配置参数。我们当然也可以利用注册表的特性来为应用程序加上使用期限,以保障软件作者的利益。
以下仅以Visual FoxPro的应用程序为例,介绍此类方法。在本例中,我们为这个应用程序添加一个直到2000年10月25日前都可以运行的条件,过了这个日期后,该软件将自动结束并提示用户注册。

我们需要先编写一注册表文本文件(.reg)。
在注册表文本文件的首行必须用命令字符串“REGEDIT",它的作用是告诉系统调用regedit来完成注册信息的合并工作。接下来的每一行或者代表一个键值的声明,或者是注释性的说明信息。
主键及其默认键值的声明格式的规则是:
根键一级主键二级主键......=默认键值
根据此规则,我们编写了注册表文本文件regdemo.reg,内容为:
REGEDIT4
[HKEY-CURRENT-USERSoftwareljiSoftwarelji]
″enddate″=″2000/10/25″
运行这个.reg文件,enddate的信息即可注册到注册表主键“HKEY-CURRENT-USERSoftwareljiSoftwarelji”中。
然后要为你的应用软件编写一个入口程序,具体内容是:
Clear ALL
CLOSE data
-SCREEN.windowstate=2
SET CENTURY ON
SET DATE TO YMD
*---------------
#DEFINE HKEY-CLASSES-ROOT
-2147483648
#DEFINE HKEY-CURRENT-USER
-2147483647
#DEFINE HKEY-LOCAL-MACHINE
-2147483646
#DEFINE HKEY-USERS
-2147483645
#DEFINE ERROR-SUCCESS
0
*---------------
IF !register()
RETURN .t.
ENDIF
*---------------
FUNCTION register
enddate=‘‘
SET proc to registry
*---------------
frmMyForm = CREATEOBJECT(″registry″)
frmMyForm.init()
enddate=‘‘
frmMyForm.GetRegKey(″enddate″,@enddate,″SoftwareljiSoftwarelji″,HKEY-CURRENT-USER)
IF enddate=‘‘
=messsagebox(‘系统还没有注册‘,64,‘系统提示‘)
ELSE
=messsagebox‘系统使用期限为:‘+enddate,64,‘系统提示‘)
ENDIF
SET proc to
IF enddate=‘‘
MESSAGEBOX(‘您还没有取得系统使用权!‘+chr(13)+‘请与软件作者联系‘,0+16,‘提示‘)
RETURN .f.
ELSE
IF date()>ctod(enddate)
MESSAGEBOX(‘系统使用期限已到!‘+chr(13)+‘请与软件作者联系‘,0+16,‘提示‘)
RETURN .f.
ELSE
RETURN .t.
ENDIF
ENDIF
需要注意的是:这里的registry是一个自定义类库对象,限于篇幅,不在此列出其代码,大家如果感兴趣,可以在Visual FoxPro的安装目录下的SAMPLECLASSES子目录中找到一个名为registry.prg的示例程序。


软件世界杂志社
相关报道




本站检索



中华网推荐

·国家级治脑病新药思维源
·中藏药治疗脑病新突破
·治类风湿,强直性脊柱炎
·养肾·痛风·长寿
·肝病泌尿脑萎缩新药介绍
·强直性脊柱炎康复乐园
·让中医辩证不孕不育
·国医治股骨头坏死一绝
·乙肝为何久治不愈?
·二千元垄断批发做老板
·中医中药专治前列腺
·治牛皮癣白癜风已成现实
·专治痛风病的白衣天使
·不孕不育的杏林奇葩
·专卖店零售管理系统





   

网络教室编辑信箱