如何实现限次运行某个项目?

项目需求

有些试用版程序,作者往往采用限制执行次数方式来保护自身的合法权益。利用发烧积木如何实现对项目的限次功能呢?项目只允许运行三次,当超过限定次数时,弹出对话窗口,禁止项目运行。

项目制作

项目制作思路是,第一次运行时先在注册表的某处添加一个计数器。这样每运行一次项目,就在计数器中加1,当达到设定的数值时,不允许项目运行。特别指出的是,计数器可藏在注册表的任意位置,最好藏得深一点,否则别人很容易找到。该项目为了方便您参考,放在注册表的“HKEY_CLASSES_ROOT——.MyTestFever”位置。

所需构件:注册表操作、两个比较判断、提示信息对话窗口、普通标签等。

属性设置:注册表操作1的“根键”属性设为“HKEY_CLASSES_ROOT”;“主键”属性设为“.MyTestFever M前有一个点);“自动建立”属性设为“真”;“名称”属性设为“计数”。

事件设置:

当项目运行,创建窗口时,事件设置如图1所示

1

解释:在对注册表进行读写数据时,必须先执行方法“打开主键”。由于自动建立属性为“真”,所以当项目运行,打开主键后,实际上在注册表的“HKEY_CLASSES_ROOT”处,已经添了主键“.MyTestFever”和主键数据(如果是第一次运行,数据为空)。

这样当执行“读字符串”操作时,读出来的数据与空字符串相比较,

 

如果相同(项目第一次运行),事件设置如图2所示。

2

解释:把字符“1”赋给注册表操作的数据属性,执行方法写字符串。表示这个项目已经运行了一次了。

 

如果不同(项目运行已不是第一次了),事件设置如图3所示

3

解释:既然不是第一次运行了,就得到“数据”属性中的值与字符3进行比较,

 

如果小于“3,项目处于正常运行状态,事件设置如图4所示

4

解释:每次运行时,就要把计数器加1,直到计数器等于3

 

如果等于“3(比较判断2的相同事件),事件设置如图5所示

5

解释:把特定的信息赋给提示信息对话窗口的信息内容,并弹出信息对话窗口。

 

当单击对话窗口听“确定”按钮时,执行窗口1的方法“退出系统”。

 

重点提示:

在比较判断中嵌套了一个比较判断,即如果第一次运行,在注册表中添加一个计数器,如果不是第一次运行,再次比较判断……

特别指出的是,判断是否超过三,执行的是“相同”事件,而不是“大于”事件

在注册表中要用读写字符串方法。