Foxtable(狐表)用户栏目专家坐堂 → 关于注册问题


  共有4750人关注过本帖树形打印复制链接

主题:关于注册问题

帅哥哟,离线,有人找我吗?
裴保民
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1989 积分:12631 威望:0 精华:0 注册:2017/4/3 15:01:00
关于注册问题  发帖心情 Post By:2017/8/29 10:13: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 > 5 Then
        Forms("注册窗体").Open()
        Code = GetConfigValue("Register" & ComputerId,"")
        If Code > "" AndAlso DecryptText(Code,"abc","abc") = ComputerId Then '如果注册码正确
            OK = True
        End If
    End If
    If n >10 AndAlso Ok = False Then
        Messagebox.Show("您正在使用的产品已经超出试用次数!")
        Syscmd.Project.Exit()
    End If
End If
n = n + 1
SaveConfigValue("Count",n)

 

Dim Count As Integer
Count = Registry.GetValue("HKEY_CURRENT_USER\Software\MyApp","Count",0)
Registry.SetValue("HKEY_CURRENT_USER\Software\MyApp","Count",Count + 1)
Output.Show(Count)

 

 

 

 

 

 

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
裴保民
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1989 积分:12631 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2017/8/29 12:22:00 [显示全部帖子]

有一个注册窗口,我想想实现:

(1)打开程序后首先判断是否已经注册,如果已经注册,则表示为正式版,进入正常程序界面。

(2)如果软件未注册,软件试用次数为60次,当达到30次后,当进入程序前打开注册窗体,如果单击注册按钮时则根据机器硬件信息获取注册码,根据注册码来注册为正式版,如果单击取消按钮则取消注册,进入正常程序;如果未注册版试用次数达到60次如果还未注册,单击取消按钮则直接退出程序。

    我在帮助文件中看到,用“SaveConfigValue函数保存进入程序次数,使用次数是保存在设置信息中的,而设置信息是存储在项目文件自身中的,所以覆盖项目文件,意味着使用次数会归零,用户可以继续使用。我想将使用次数同时保存到注册中,运行程序后同时判断“项目文件”和“注册表”的值,如果有任何一个值满足相应的条件时就执行相应的代码,这样即使覆盖项目文件,试用版用户也不能再继续使用了。

 

 

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 > 5 Then
        Forms("注册窗体").Open()
        Code = GetConfigValue("Register" & ComputerId,"")
        If Code > "" AndAlso DecryptText(Code,"abc","abc") = ComputerId Then '如果注册码正确
            OK = True
        End If
    End If
    If n >10 AndAlso Ok = False Then
        Messagebox.Show("您正在使用的产品已经超出试用次数!")
        Syscmd.Project.Exit()
    End If
End If
n = n + 1
SaveConfigValue("Count",n)

 这样只是将使用次数储存在设置信息中的,而设置信息是存储在项目文件自身中,通知执行相应的代码,怎么同时将使用次数储存在注册表中和同时判断其条件执行相应的代码呢? 

注册表写入我写了如下代码:  不知道如何同时保存和判断条件,麻烦老师给个方案!

 

Dim Count As Integer
Count = Registry.GetValue("HKEY_CURRENT_USER\Software\MyApp","Count",0)
Registry.SetValue("HKEY_CURRENT_USER\Software\MyApp","Count",Count + 1)
Output.Show(Count)

 

 

 

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
裴保民
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1989 积分:12631 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2017/8/29 13:38:00 [显示全部帖子]

到期后怎么不显示注册窗体呀?

 


 回到顶部
帅哥哟,离线,有人找我吗?
裴保民
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1989 积分:12631 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2017/8/29 15:25:00 [显示全部帖子]

单击确认按钮,说明已经注册属于正式版了,怎么下次启动查询时,还是属于未注册状态呢?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:试用版次数限制.foxdb

[此贴子已经被作者于2017/8/29 15:29:17编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
裴保民
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1989 积分:12631 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2017/8/29 16:13:00 [显示全部帖子]

注册码本来是对的呢,怎么反馈是错误的呢?
注册码是:Y/6y/L4wgzz2clZI43kIkkH7PGTufFTM

 

 

还有一个问题是这个值储存到项目文件中什么位置了,怎么查不到呀,怎么请零呢?

[此贴子已经被作者于2017/8/29 16:16:00编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
裴保民
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1989 积分:12631 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2017/8/29 16:36:00 [显示全部帖子]

我试了单击确定按钮也不管用呢?下次运行的时候还是弹出注册框的!

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:试用版次数限制.foxdb

 

 

用 SaveConfigValue("Register" & ComputerId, "") 储存值清除不了

 

[此贴子已经被作者于2017/8/29 16:46:28编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
裴保民
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1989 积分:12631 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2017/8/29 16:51:00 [显示全部帖子]

用 SaveConfigValue("Register" & ComputerId, "") 储存值清除不了

 

 

 

 

老师注册码注册成功后注册码注册到哪啦?怎么表示是否为试用版或正式版呀?

[此贴子已经被作者于2017/8/29 16:54:04编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
裴保民
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1989 积分:12631 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2017/8/29 17:05:00 [显示全部帖子]

老师每一次的累加数值存到哪里啦?

注册码注册成功后注册码又注册到哪啦?怎么表示是否为试用版或正式版呀?

不明白原理望老师指点 

 回到顶部
帅哥哟,离线,有人找我吗?
裴保民
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1989 积分:12631 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2019/3/13 0:08: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,"acbd","bad") = HardDiskID AndAlso Tables("注册用户信息表").Current IsNot Nothing Then '如果注册码正确
    StatusBar.DefaultMessage ="POS机进销存管理系统 2.0    " & Tables("注册用户信息表").Current("公司名称")
    OK = True
Else
    If n >=20 AndAlso  n < 30  Then
        Forms("系统注册窗体").Open()
        Code = Registry.GetValue("HKEY_CURRENT_USER\Software\MyAPP","Register" & HardDiskID,"")
        If Code > "" AndAlso DecryptText(Code,"acbd","bad") = HardDiskID Then '如果注册码正确
            StatusBar.DefaultMessage ="POS机进销存管理系统 2.0    " & Tables("注册用户信息表").Current("公司名称")
            OK = True
        End If
    ElseIf n >= 30 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,"acbd","bad") = HardDiskID AndAlso Tables("注册用户信息表").Current IsNot Nothing Then '如果注册码正确
                StatusBar.DefaultMessage ="POS机进销存管理系统 2.0    " & Tables("注册用户信息表").Current("公司名称")
                OK = True
            Else
                Return
            End If
        Else
            System.Diagnostics.Process.GetCurrentProcess().Kill
        End If
    End If
    StatusBar.DefaultMessage ="POS机进销存管理系统 2.0     " & "              试用版"
End If
Registry.SetValue("HKEY_CURRENT_USER\Software\MyAPP","Count",)

麻烦看看拿错了n 值到21就不加了


 回到顶部
帅哥哟,离线,有人找我吗?
裴保民
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:八尾狐 帖子:1989 积分:12631 威望:0 精华:0 注册:2017/4/3 15:01:00
  发帖心情 Post By:2019/3/13 9:19:00 [显示全部帖子]

我是每个条件内都加入了此代码,后来实现了

 回到顶部
总数 11 1 2 下一页