以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]软件加密的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=121292)

--  作者:龙潭春早
--  发布时间:2018/7/3 14:27:00
--  [求助]软件加密的问题
UKey给软件加密后,是不是每一个用户,都必须插上UKey才能使用?

也就是说,要给每一个用户都买一个Ukey ?

--  作者:有点甜
--  发布时间:2018/7/3 14:37:00
--  

是的。ukey是一种安全的加密方式,必须插入ukey才能使用你的程序,防止别人盗用你的成果。

 

如果不需要ukey,用注册码之类的方式处理 http://www.foxtable.com/webhelp/scr/1545.htm

 


--  作者:龙潭春早
--  发布时间:2018/7/3 14:47:00
--  
咱们的Ukey多少钱一个?
--  作者:有点甜
--  发布时间:2018/7/3 14:58:00
--  
联系QQ客服800014337咨询购买。
--  作者:龙潭春早
--  发布时间:2018/7/3 15:01:00
--  
哦 好
--  作者:龙潭春早
--  发布时间:2018/7/4 16:58:00
--  
甜老师你好!

帮助里讲到用机器码给软件加密时,说“实际应用的时候,应该同时在注册表中保存使用次数,启动的时候同时从设置信息和注册表读取使用次数,并取最大值

但是案例中,没有给出保存到注册表的代码,能给提供一个完整的代码吗?

这是帮助中的案例代码:

将项目的AfterOpenProject事件设为:


Dim n As Integer = GetConfigValue("Count",1)
Dim
 Code As String = GetConfigValue("Register" & ComputerId,"")
Dim
 Ok As Boolean 
If
 Code > "" AndAlso DecryptText(Code,"abc","abc") = ComputerId Then \'如果注册码正确
    OK = 
True
Else
    If
 n > 30 Then
        Forms(
"注册").Open()
        Code = GetConfigValue(
"Register" & ComputerId,"")
        If
 Code > "" AndAlso DecryptText(Code,"abc","abc") = ComputerId Then\'如果注册码正确
            OK = 
True
        End
 If
    End
 If
    If
 n > 60 AndAlso Ok = False Then
        Messagebox.Show(
"您正在使用的产品已经超出试用次数!")
        Syscmd.Project.
Exit()
    End
 If
End
 If
n = n + 
1
SaveConfigValue(
"Count",n)



--  作者:有点甜
--  发布时间:2018/7/4 22:25:00
--  

保存到注册表,参考

 

http://www.foxtable.com/webhelp/scr/2051.htm

 


--  作者:龙潭春早
--  发布时间:2018/7/4 22:37:00
--  
嗯,之前已经看过。

这两天头儿们追的紧,要赶紧给他们一个可用的版本,没有时间研究写代码了。

所以,想着大侠们可能有些现成的,能省不少时间!

--  作者:有点甜
--  发布时间:2018/7/4 23:03:00
--  

比如代码


Dim n As Integer = Registry.GetValue("HKEY_CURRENT_USER\\Software\\MyAPP","Count",0)
Dim Code As String =Registry.GetValue("HKEY_CURRENT_USER\\Software\\MyAPP","Register" & HardDiskID,"")
Dim Ok As Boolean
If Code > "" AndAlso DecryptText(Code,"acb","abc") = HardDiskID Then \'如果注册码正确
    OK = True
Else
        If n < 50 Or n=50 Then
           Forms("注册").Open()
           Code = Registry.GetValue("HKEY_CURRENT_USER\\Software\\MyAPP","Register" & HardDiskID,"")
              If Code > "" AndAlso DecryptText(Code,"abc","abc") = HardDiskID Then \'如果注册码正确
              OK = True
              End If
        ElseIf n > 100 AndAlso Ok = False Then
           Dim Result As DialogResult
           Result = MessageBox.Show("您使用的软件已经超过使用次数,需要注册才能使用,是否注册?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
             If Result = DialogResult.Yes Then
             Forms("注册").Open()
             Code = Registry.GetValue("HKEY_CURRENT_USER\\Software\\MyAPP","Register" & HardDiskID,"")
                If Code > "" AndAlso DecryptText(Code,"abc","abc") = HardDiskID Then \'如果注册码正确
                OK = True
                End If
             Else
            Syscmd.Project.Exit()
            End If 
       End If 
End If
Registry.SetValue("HKEY_CURRENT_USER\\Software\\MyAPP","Count",n + 1)


--  作者:龙潭春早
--  发布时间:2018/7/6 13:53:00
--  
真没想到,都半夜十一点多了,还给回复!

非常感谢甜老师,敬业精神值得我们学习!

辛苦了,甜老师!

有这么好的员工,FT一定能发展壮大!!!

找时间尽快测试一下,再次感谢!!!