以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  请教有关注册系统?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=9245)

--  作者:baoxyang
--  发布时间:2011/3/18 13:12:00
--  请教有关注册系统?

在项目

AfterOpenProject

代码如下:

Dim n As Integer = GetConfigValue("Count",1)
Dim Code As String = GetConfigValue("Register" & ComputerId,"")
If Code > ""  AndAlso DecryptText(Code,"1111","2222") = ComputerId Then \'如果注册码正确
       n = n + 1
       SaveConfigValue("Count",n)
       Vars("出车时间") = ""
       Vars("版本号") = "V10.12.06.01"
       Forms("登陆").Open()
Else
    If n > 50 And n <= 90 Then
        Forms("注册窗口").Open()
    Else If n > 90 Then
        Messagebox.Show("您正在使用的产品已经超出试用次数!")
        Vars("IP") = ""
        Syscmd.Project.Exit(False)
    End If
End If

 

注册窗口:

AfterLoad代码如下:

e.Form.Controls("TextBox1").Value = ComputerId
e.Form.Controls("TextBox2").Value = GetConfigValue("Register" & ComputerId, "")

 

确认按钮代码如下:

Dim Code As String = e.Form.Controls("TextBox2").Value
Dim n As Integer
If Code > "" AndAlso DecryptText(Code,"1111","2222") = ComputerId Then \'如果注册码正确
       n = n + 1
       SaveConfigValue("Count",n)
       SaveConfigValue("Register" & ComputerId, e.Form.Controls("TextBox2").Value)
       Vars("出车时间") = ""
       Vars("版本号") = "V10.12.06.01"
       e.Form.Close()
       Forms("登陆").Open()
Else
     messagebox.show("输入注册码不正确,请重新输入或与软件开发人员联系!")
     Return
End If

 

怎么老是注册成功后,每次登陆项目都会出现注册窗口,需要重新注册才能登陆。

请高手指点,是哪里出了问题?多谢各位啦!!

[此贴子已经被作者于2011-3-18 13:12:14编辑过]

--  作者:狐狸爸爸
--  发布时间:2011/3/18 13:36:00
--  
做个例子上来,我帮你看看
--  作者:baoxyang
--  发布时间:2011/3/18 13:42:00
--  
不有做例子吧,否则要花费一段时间。就上面的代码,全部贴出来了,不知是否代码问题?
--  作者:狐狸爸爸
--  发布时间:2011/3/18 13:45:00
--  
惭愧,还真没有看出啥问题来。
--  作者:lihe60
--  发布时间:2011/3/18 14:28:00
--  
以下是引用baoxyang在2011-3-18 13:42:00的发言:
不有做例子吧,否则要花费一段时间。就上面的代码,全部贴出来了,不知是否代码问题?

楼主,你不传例子,恐怕很少人能帮上的。


--  作者:baoxyang
--  发布时间:2011/3/18 16:27:00
--  

发现是这样的情况:

在窗口执行SaveConfigValue("Register" & ComputerId, e.Form.Controls("TextBox2").Value)

在未退出项目前GetConfigValue("Register" & ComputerId, "") 得出结果是正确的,

如果退出项目后GetConfigValue("Register" & ComputerId, "") 得到结果是空值。

请老大看看是乍回事呀。


--  作者:狐狸爸爸
--  发布时间:2011/3/18 16:47:00
--  

肯定的,ConfigValue保存在项目中的,退出了就不是原来的项目了,值自然就为空了。

考虑BeforeCloseProject事件?


--  作者:baoxyang
--  发布时间:2011/3/18 16:55:00
--  

啊,不会吧。SaveConfigValue不是保存相关注册信息于项目中吗,退出项目再登陆就没有用的话,这样注册系统有何作用呀?那我就不知如何注册才有效,

这个注册系统是帮助提供的呀。


--  作者:baoxyang
--  发布时间:2011/3/18 16:57:00
--  
以下是引用狐狸爸爸在2011-3-18 16:47:00的发言:

肯定的,ConfigValue保存在项目中的,退出了就不是原来的项目了,值自然就为空了。

考虑BeforeCloseProject事件?

退出了项目,再登陆项目,项目应不会改变吧,除非重新发布才为空吧。


--  作者:狐狸爸爸
--  发布时间:2011/3/18 16:58:00
--  
哪应该不会的,稍等,我测试一下看看。