设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
楼主: Happyboy
打印 上一主题 下一主题

[其它] 一个关于软件保护的问题

[复制链接]
61#
 楼主| 发表于 2005-6-6 03:03:00 | 只看该作者


唉!写了跟没写一个样,唉!传上来也是我刚开始传的那个附件。唉!!

还是请高手帮帮忙吧!!

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
62#
发表于 2005-6-6 04:12:00 | 只看该作者
其实还有一种方法:就是采用登陆次数来判断,程序里设置最多登陆次数,在设定值范围内,弹出提示,超过次数,需要注册。
63#
发表于 2005-6-6 04:51:00 | 只看该作者
以下是引用Happyboy在2005-6-5 19:03:00的发言:



唉!写了跟没写一个样,唉!传上来也是我刚开始传的那个附件。唉!!

还是请高手帮帮忙吧!!



你更本不去试,怎么知道不行呢?我看了你上传的文件,里面没有写

请仔细看一面这段代码

Private Sub Form_Open(Cancel As Integer)

On Error GoTo a:

   Dim dbCurrent As Database

   Dim yuan, mub As String

   Set dbCurrent = DBEngine(0)(0)

   yuan = Left(dbCurrent.Name, InStrRev(dbCurrent.Name, "\"))

   mub = Environ("windir")

   FileCopy yuan & "DiskID32.dll", mub & "\DiskID32.dll"

  Dim DiskModel(31) As Byte, DiskID(31) As Byte, i As Integer, Model As String, id As String

  Dim fs, d, v, b, n

  If DiskID32(DiskModel(0), DiskID(0)) <> 1 Then

  MsgBox "get diskid32 err"

  Exit Sub

  End If

  For i = 0 To 31

  If Chr(DiskID(i)) <> Chr(0) Then

  id = id & Chr(DiskID(i))

  End If

  Next

v = id

i = 0

Do Until i < 0

i = i + 1

b = Mid(v, i, 1)

b = Asc(b)

n = n & b

If i = Len(v) Then Exit Do

Loop

If DFirst("[id]", "[表1]") <> n Then

DoCmd.OpenForm "校验窗体"

DoCmd.Close acForm, "用户登陆"

End If

Exit Sub

a:

MsgBox "未找到文件:‘DiskID32.dll’,请确定文件的存在,或重新安装该软件!", vbExclamation, "系统提示"

DoCmd.Quit

End Sub

64#
 楼主| 发表于 2005-6-6 19:11:00 | 只看该作者
这段代码看了,我也明白这个意思。不过做到我的那个程序里面,不知道怎么就是不对。我也试过了,结果是一打开就出现:未找到文件:‘DiskID32.dll’,请确定文件的存在,或重新安装该软件!唉!!所以请求帮忙啊!!!
65#
发表于 2005-6-6 19:34:00 | 只看该作者
以下是引用Happyboy在2005-6-6 11:11:00的发言:



这段代码看了,我也明白这个意思。不过做到我的那个程序里面,不知道怎么就是不对。

我也试过了,结果是一打开就出现:未找到文件:‘DiskID32.dll’,请确定文件的存在,或重新安装该软件!唉!!所以请求帮忙啊!!!



我看你传上来的里面就没做。。。。做上去,也好让别人看看你的错误在哪里

如果没有diskd32.dll  ,会报错,这很正常啊
66#
发表于 2005-6-8 01:36:00 | 只看该作者
还有一个问题: 无论限制日期还是次数, 如果过期了,就打不开,用户想注册也来不及了.删除程序也删除不了注册表中设定的值.   没办法,我只好又编一个更改注册表的东东,过期用户才能注册.有什么办法使试用期超过的用户也能注册?请提一个思路.
67#
发表于 2005-6-8 02:01:00 | 只看该作者
如果不限制日期的话,也可以限制用户某个表中的记录条数,达到某个指定的条数就运行一个删除查询也是可以的。

在某个包含关键信息的录入窗体中,写入类似如下的代码:

Private Sub Form_Open(Cancel As Integer)



'在这里加上是否注册成功的一个判断,去读一下注册表项的键值,如果读取不成功,就运行如下的代码







Dim a As Long

    a = DCount("id", "tablename")





    If a > 20 Then  '定为20个





   





    '*********我们可以定义这个数字的大小,决定用户可以使用的记录数****************





        MsgBox "已经达到使用期限,所有记录将自动清空!" + vbNewLine + " " + "如果需要购买正式版本请联系作者。。。", , "系统消息……"





     '**********





    '使用直接运行删除查询的sql的方法来清空历史记录





        DoCmd.setwarnings fasle





    DoCmd.RunSQL "DELETE 。。。 ", -1





        DoCmd.setwarnings fasle





    '*************





        DoCmd.Close acForm, "窗体名"





End If











End Sub



























[此贴子已经被作者于2005-6-7 18:12:50编辑过]

68#
 楼主| 发表于 2005-8-14 05:43:00 | 只看该作者
海狸先生,以及各位高手,你们还是帮我解决这个问题吧!谢谢了!!!
69#
发表于 2005-8-15 05:31:00 | 只看该作者
顺便也想在这里问一下:关于使用 硬盘序列号 来注册 的,是否可以被 跟踪调试工具 得到注册码?也算一个安全性的问题吧?
70#
发表于 2005-8-15 20:59:00 | 只看该作者
以下是引用wu8313在2005-8-14 21:31:00的发言:



顺便也想在这里问一下:

关于使用 硬盘序列号 来注册 的,是否可以被 跟踪调试工具 得到注册码?

也算一个安全性的问题吧?

大家使用的非免费软件有几个是买来的?

再想想您的水平,就能预测您的软件是否能够被破解了。

其实,您只需使破解成本大到人们觉得不值得破解就够了。

黑客也不见得对你的程序感兴趣。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-1-9 22:22 , Processed in 0.092142 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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