设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 2157|回复: 7
打印 上一主题 下一主题

[模块/函数] 这个程序能真正意义上限制软件30天试用吗?

[复制链接]
跳转到指定楼层
1#
发表于 2007-11-11 10:29:37 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请问:以下这个程序能真正意义上限制软件30天试用吗?
'限制软件30天试用

Dim ReValue As Date '声明时间变量
Dim name As String '声明字符串变量,软件名称
Dim dd As Variant '声明数值变量,dd为日期差

name = "gggg" '给变量赋值软件名为gggg


ReValue = GetSetting(name, "MainKey", "DateValue", Date) '读取注册表软件名gggg的键值,如果没有则为当前日期
Me.Text1 = ReValue
dd = DateDiff("d", ReValue, Date) '计算日期差
Me.Text2 = dd

If dd = 0 Then '如果是第一天运行
    SaveSetting name, "MainKey", "dateValue", Date '写注册表
End If
If dd > 30 Then
    MsgBox "软件已过期"
Else
    MsgBox "软件可以试用"
    'DoCmd Quit
    MsgBox "还剩下" & 30 - dd & "天试用期!"
End If
               如果用户将计算机系统时间往前调整天数,那么用户就可以无限制地使用软件了,请问如何修改该程序,才能真正地绝对限制软件30天试用。谢谢!
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2007-11-11 10:56:00 | 只看该作者
既然是共享软件,一般很难做到绝对的限制的,有几种方法可以加强一下,如多在几个位置记录第一次使用的信息(在注册表之外,另外使用文件记录之类的),在注册表中的存储也采用加密的开始日期,并且,判断时不是用>30而是>30或<0即终止使用,另外有些程序还存储上次使用日期(这个都不重要了),再加上一句,如果是第一次运行,则将数据恢复到初始状态的语句,也就是说,当用户删除了注册表的相应记录,就恢复到程序的初始状态等之类的操作.
3#
 楼主| 发表于 2007-11-11 14:59:25 | 只看该作者
liwen:你好!请问如何编写加密的初始时间的编码?你可以具体地帮我编写完整的真正可以限制软件30天使用的程序吗?盼复。谢谢!
4#
发表于 2007-11-12 08:48:18 | 只看该作者
关注.................
5#
发表于 2007-11-13 01:07:38 | 只看该作者
方法是挺不错的哦!!!
6#
发表于 2007-11-14 13:02:18 | 只看该作者
感觉在这个问题上纠缠太多没太大的意义,微软的系统一样被人破解,但仍有大量正版用户
7#
发表于 2007-11-14 15:31:07 | 只看该作者
和微软不一样,你做的软件就一个或几个用户,能不能保证用户付钱意义就大了。
8#
发表于 2007-11-15 11:02:48 | 只看该作者
1、装上几种限制方法。比如写注册表;写独立文件中,写在表中再加权限;加在数据库属性中;查看文件的更新日期等等。系统运行时读出所有的日期值,然后以其中的最大日期值做是否过期的判断,同时同步更新所有的日期值。这样除非破解的人找到并同时改小了这几个的日期值才有可能破解,这样难度就大大增加了。
2、不仅仅在启动窗体中运行检验(容易被跳过),在程序的核心代码运行前也捆绑检验。
3、我的专栏中有单种限制方法的例子可供参考。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-23 11:31 , Processed in 0.087413 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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