不写注册表的注册程序

当时他的要求是这样的:在EXCEL文件里面实现像应用软件那样的注册功能,只有在电脑上注册了才能正常使用。我当时的第一个想法就是,用API读写注册表。但是稍嫌麻烦了一点,有杀鸡用牛刀的感觉。

后来我想当然地采用了一种不用读写注册表的方法。老实说,这种方法简单得有些过份,以至于只能骗骗一些连电脑基础操作都不太懂的低级用户,并不具有真正的实用性。我个人是把它当成练习编程和拓展思路的习作。

思路这样的:注册,无非就是把某些信息写入操作系统中,在需要时再读取出来。现在既然不想用注册表,那不妨建一个文件,把它当注册表使用。至于文件的类型,首选自然是文本文件。

于是先建两个函数,一个用来创建用于存储注册信息的文本文件,另一个用于判断是否已经注册或注册系列号是否正确。

Public dayLong As Integer  '先定义了一个全局变量,用来存储当前日期与注册日期的间隔天数,以限制试用天数

Function createTxtReg(RegCode As String) '该函数用于创建一个注册文件,并写入注册信息,RegCode为注册系列号参数

Set fs = CreateObject("Scripting.FileSystemObject")

Set a = fs.CreateTextFile(Application.Path & "\regfile.txt", True) '创建文件,最好放到一个不显眼的位置,这里建在EXCEL安装目录下

a.writeline (Trim(RegCode)) '写入注册系列号

a.writeline (Date) '写入注册日期

a.Close

End Function

Function regOrNo() '该函数用于判断是否注册、注册信息是否准确

On Error GoTo err_name

Dim txt(1) '数组,用于存放注册的信息。

Dim aReg

Dim exRegCode As Boolean

Dim arrReg(2) '数组,用于存放注册系列号。

arrReg(0) = "aabbcc"

arrReg(1) = "bbccdd"

arrReg(2) = "ccddee"

Set fs = CreateObject("Scripting.FileSystemObject")

Set a = fs.openTextFile(Application.Path & "\regfile.txt") '打开注册文件

For i = 0 To 1

txt(i) = a.readline '读取注册信息,并存到数组txt

Next

a.Close

For Each aReg In arrReg

If aReg = txt(0) Then

exRegCode = True

Exit For

End If

Next

If exRegCode True Then

regOrNo = "wrongReg"

Else

regOrNo = "successReg"

dayLong = Date - DateValue(txt(1))

End If

Exit Function

err_name:

regOrNo = "noReg"

Exit Function

End Function

两个函数已经写好,接下来就是对它们进行调用了。先是在文件打开时调用regOrNo函数进行判断,是否注册,以及注册是否正确。不通过,则显示注册窗口。

然后,在注册窗口上有一个用于输入注册系列号的文本框以及一个“注册”按钮。点该按钮后则调用前面两个函数,分别进行注册及判断注册。出错则提示。

Private Sub Workbook_Open() 'EXCEL文件打开时,进行判断

Dim RegCodeStr As String

RegCodeStr = regOrNo '调用regOrNo函数,返回特定值

If dayLong > 30 Then  '判断是否超期

MsgBox "注册日期已经过期,请重新注册!"

UserForm1.Show '显示注册窗口

Else

Select Case RegCodeStr

Case "wrongReg"

MsgBox "注册号有误,请重新注册!"

UserForm1.Show

Case "noReg"

MsgBox "您尚未注册,无法使用本系统"

UserForm1.Show

Case "successReg"

MsgBox "该系统已经注册!"

End Select

End If

End Sub

Private Sub cmdReg_Click() '注册窗体中的注册过程

Dim RegCodeStr As String

If IsNull(Me.txtRegCode) Or Me.txtRegCode = "" Then  'Me.txtRegCode就是文件框,用于输入注册系列号

MsgBox "注册号不得为空!"

Else

createTxtReg (Me.txtRegCode) '调用createTxtReg函数,创建注册文件,写入注册信息

RegCodeStr = regOrNo  '调用regOrNo函数,返回特定值

Select Case RegCodeStr

Case "wrongReg"

MsgBox "注册号有误,请重新注册!"

Case "noReg"

MsgBox "您尚未注册,无法使用本系统"

Case "successReg"

MsgBox "注册成功!"

Unload Me

End Select

End If

End Sub

当时他的要求是这样的:在EXCEL文件里面实现像应用软件那样的注册功能,只有在电脑上注册了才能正常使用。我当时的第一个想法就是,用API读写注册表。但是稍嫌麻烦了一点,有杀鸡用牛刀的感觉。

后来我想当然地采用了一种不用读写注册表的方法。老实说,这种方法简单得有些过份,以至于只能骗骗一些连电脑基础操作都不太懂的低级用户,并不具有真正的实用性。我个人是把它当成练习编程和拓展思路的习作。

思路这样的:注册,无非就是把某些信息写入操作系统中,在需要时再读取出来。现在既然不想用注册表,那不妨建一个文件,把它当注册表使用。至于文件的类型,首选自然是文本文件。

于是先建两个函数,一个用来创建用于存储注册信息的文本文件,另一个用于判断是否已经注册或注册系列号是否正确。

Public dayLong As Integer  '先定义了一个全局变量,用来存储当前日期与注册日期的间隔天数,以限制试用天数

Function createTxtReg(RegCode As String) '该函数用于创建一个注册文件,并写入注册信息,RegCode为注册系列号参数

Set fs = CreateObject("Scripting.FileSystemObject")

Set a = fs.CreateTextFile(Application.Path & "\regfile.txt", True) '创建文件,最好放到一个不显眼的位置,这里建在EXCEL安装目录下

a.writeline (Trim(RegCode)) '写入注册系列号

a.writeline (Date) '写入注册日期

a.Close

End Function

Function regOrNo() '该函数用于判断是否注册、注册信息是否准确

On Error GoTo err_name

Dim txt(1) '数组,用于存放注册的信息。

Dim aReg

Dim exRegCode As Boolean

Dim arrReg(2) '数组,用于存放注册系列号。

arrReg(0) = "aabbcc"

arrReg(1) = "bbccdd"

arrReg(2) = "ccddee"

Set fs = CreateObject("Scripting.FileSystemObject")

Set a = fs.openTextFile(Application.Path & "\regfile.txt") '打开注册文件

For i = 0 To 1

txt(i) = a.readline '读取注册信息,并存到数组txt

Next

a.Close

For Each aReg In arrReg

If aReg = txt(0) Then

exRegCode = True

Exit For

End If

Next

If exRegCode True Then

regOrNo = "wrongReg"

Else

regOrNo = "successReg"

dayLong = Date - DateValue(txt(1))

End If

Exit Function

err_name:

regOrNo = "noReg"

Exit Function

End Function

两个函数已经写好,接下来就是对它们进行调用了。先是在文件打开时调用regOrNo函数进行判断,是否注册,以及注册是否正确。不通过,则显示注册窗口。

然后,在注册窗口上有一个用于输入注册系列号的文本框以及一个“注册”按钮。点该按钮后则调用前面两个函数,分别进行注册及判断注册。出错则提示。

Private Sub Workbook_Open() 'EXCEL文件打开时,进行判断

Dim RegCodeStr As String

RegCodeStr = regOrNo '调用regOrNo函数,返回特定值

If dayLong > 30 Then  '判断是否超期

MsgBox "注册日期已经过期,请重新注册!"

UserForm1.Show '显示注册窗口

Else

Select Case RegCodeStr

Case "wrongReg"

MsgBox "注册号有误,请重新注册!"

UserForm1.Show

Case "noReg"

MsgBox "您尚未注册,无法使用本系统"

UserForm1.Show

Case "successReg"

MsgBox "该系统已经注册!"

End Select

End If

End Sub

Private Sub cmdReg_Click() '注册窗体中的注册过程

Dim RegCodeStr As String

If IsNull(Me.txtRegCode) Or Me.txtRegCode = "" Then  'Me.txtRegCode就是文件框,用于输入注册系列号

MsgBox "注册号不得为空!"

Else

createTxtReg (Me.txtRegCode) '调用createTxtReg函数,创建注册文件,写入注册信息

RegCodeStr = regOrNo  '调用regOrNo函数,返回特定值

Select Case RegCodeStr

Case "wrongReg"

MsgBox "注册号有误,请重新注册!"

Case "noReg"

MsgBox "您尚未注册,无法使用本系统"

Case "successReg"

MsgBox "注册成功!"

Unload Me

End Select

End If

End Sub


相关内容

  • 练习6实施控制测试和实质性程序答案
  • 一.单项选择题 1.注册会计师设计和实施的进一步审计程序的性质.时间和范围,应当与评估的( B )重大错报风险具备明确的对应关系. A.财务报表层次B.认定层次C.账户余额D.交易或事项 2.注册会计师对进一步审计程序的性质的选择时以下不恰当的是( D ). A.在确定进一步审计程序的性质时,注册会 ...

  • 2016注册会计师审计教材(1)
  • 2015年度注册会计师全国统一考试 <审计>试题.答案及依据 一.单项选择题(本题型共25小题,每小题1分,共25分.每小题只有一个正确答案,请从每小题的备选答案中选出一个你认为正确的答案,用鼠标点击相应的选项.) 1.下列有关注册会计师执行的业务提供的保证程度的说法中,正确的是( ). ...

  • 小企业审计工作底稿指引
  • 中国注册会计师 小企业年度财务报表 审计工作底稿指引 山西省注册会计师协会 二○○七年五月 编委会成员名单 顾 问:武 涛 卢振基 总 审:李 刚 主 编:李志明 编 委:丁建飞 马 帅 李志明 李艳萍 (按姓氏笔画排名) 涛邢德广翟国强李 刚卢振基 武 序 言 2006年2月15日,中国注册会计师 ...

  • 中国互联网络信息中心域名注册实施细则
  • 中国互联网络信息中心域名注册实施细则 第一章 总则 第一条 为了规范域名注册服务和管理,根据<中国互联网络域名管理办法>(以下简称<域名管理办法>) ,制定本实施细则. 第二条 申请注册由中国互联网络信息中心负责管理的".CN "域名和". 中国 ...

  • 1312 号--函证
  • <中国注册会计师审计准则第 1312 号--函证>指南 第一章 总 则 <中国注册会计师审计准则第1312 号--函证>(以下简称本准则)第一章(第一条至第四条),主要说明本准则的制定目的和适用范围.函证的含义以及对注册会计师实施函证程序的总体要求. 一.函证的含义 本准则第 ...

  • 共享软件加密的一些误区
  • 本文发表于<电脑软件编程与维护> 2005年12期 作者:星轨(oRbIt) E_Mail :[email protected] 共享软件通常是指那种采用"先使用,后付款"的方式发布的软件,这类软件通常有两个(或多个)不同的版本,公开发布的是一个功能受限制或使用时间和次 ...

  • 企业内部控制审计指引实施意见
  • 企业内部控制审计指引实施意见 目录 附件: 企业内部控制审计指引实施意见 为了规范注册会计师执行财务报告内部控制(以下简称内部控制)审计业务,明确工作要求,提高执业质量,维护公众利益,根据中国注册会计师审计准则.<企业内部控制基本规范>和<企业内部控制审计指引>,在整合审计框 ...

  • [行业]新三板按IPO审计,证监会发布新三板公司审计会计监管风险提示
  • 来源:中国证监会会计部 近日,中国证监会会计部为强化新三板挂牌公司审计业务监管,督促会计师事务所在新三板挂牌公司审计业务中归位尽责,进一步提高新三板挂牌公司财务信息披露质量,针对会计师事务所执行新三板挂牌公司审计业务的监管风险进行了提示. 中国证监会会计部(首席会计师办公室)主要职责包括:审核会计师 ...

  • 食药监药化管[2015]122号,关于进一步规范药品注册受理工作的通知
  • 2015年07月30日 发布 各省.自治区.直辖市食品药品监督管理局: 为进一步规范药品注册受理工作,现印发<药品注册形式审查补充要求>(见附件),请遵照执行,并将有关要求通知如下: 一.各省级局应严格按照<药品注册管理办法>及相关规定,在5个工作日内完成对申报资料的形式审查 ...

  • 审计知识点
  • 2013年注会<审计>重要背诵知识点 第一章 1.审计的定义:(背) 审计是一个系统化过程,即通过客观地获取和评价有关经济活动和经济事项认定的证据,以证实这些认定与既定标准的符合程度,并将结果传达给有关使用者. 2.注册会计师审计意见的作用:(背) (1)注册会计师审计是提高财务信息的可 ...