Foxtable(狐表)用户栏目专家坐堂 → [求助]软加密:关于远程升级后总要输注册码


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

主题:[求助]软加密:关于远程升级后总要输注册码

帅哥哟,离线,有人找我吗?
乡里出城
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:426 积分:3505 威望:0 精华:0 注册:2015/4/17 9:13:00
[求助]软加密:关于远程升级后总要输注册码  发帖心情 Post By:2015/8/14 15:22:00 [只看该作者]

项目的AfterOpenProject事件加入软加密注册的代码,如帮助里的代码一样,正确没问题,可是现在提的问题主要是,每次远程更新升级时,再打开项目就存在,有些客户端打开项目时要再次输入注册码才能进去,有些客户端则不用输注册就可以进去了,是什么原因。有什么方法解决。想解决,项目只要注册一次就可以了,不管重卸还是升级更新,不需要每次在远程更新升级后,再打开客户端还在输入注册码才能进去。
[此贴子已经被作者于2015/8/14 15:23:32编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/14 15:54:00 [只看该作者]

方法一:把注册码存储到注册表那里去,不要用saveConfigValue

 

http://www.foxtable.com/help/topics/2051.htm

 

方法二:用一个txt文件夹存放注册码信息,不要用saveConfigValue

 

ReadAllText 读取文本文件的内容
WriteAllText 向文本文件中写入内容


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


加好友 发短信
等级:一尾狐 帖子:426 积分:3505 威望:0 精华:0 注册:2015/4/17 9:13:00
  发帖心情 Post By:2015/8/14 15:58:00 [只看该作者]

但安全性是不是不如saveConfigValue了

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/14 16:22:00 [只看该作者]

以下是引用乡里出城在2015/8/14 15:58:00的发言:
但安全性是不是不如saveConfigValue了

 

保存的是激活码。

 

没有什么安全不安全的。激活码泄露又没有什么用。


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


加好友 发短信
等级:一尾狐 帖子:426 积分:3505 威望:0 精华:0 注册:2015/4/17 9:13:00
  发帖心情 Post By:2015/8/17 16:45:00 [只看该作者]

我按你的那种方式改了好几天,但改不对,大红袍能帮我一下吗,应该怎么样才能更改第二种方法那里,以下是我的没改的原码


Dim n As Integer = GetConfigValue("Count",1)

Dim Code As String = GetConfigValue("Register" & ComputerId,"")

Dim sss As String

Try

    sss = DecryptText(Code,"abc","abc")

Catch ex As Exception

End Try

Dim Ok As Boolean

If Code > "" AndAlso sss = ComputerId Then '如果注册码正确

    OK = True

Else

    If n > 0 Then

        Forms("注册").Open()

        Code = GetConfigValue("Register" & ComputerId,"")

        Try

            sss = DecryptText(Code,"abc","abc")

        Catch ex As Exception

        End Try

       

        If Code > "" AndAlso sss = ComputerId Then '如果注册码正确

            OK = True

        End If

    End If

    If n > 0 AndAlso Ok = False Then

        Messagebox.Show("您正在使用的产品已经超出试用次数!")

        Syscmd.Project.Exit()

    End If

End If

n = n + 1

SaveConfigValue("Count",n)



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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/17 16:55:00 [只看该作者]

Dim str As String = FileSys.ReadAllText(ProjectPath & "config.txt")

Dim n As Integer = GetConfigValue("Count",1)

Dim Code As String = str

Dim sss As String

Try
   
    sss = DecryptText(Code,"abc","abc")
   
Catch ex As Exception
   
End Try

Dim Ok As Boolean

If Code > "" AndAlso sss = ComputerId Then '如果注册码正确
   
    OK = True
   
Else
   
    If n > 0 Then
       
        Forms("注册").Open() '
        'FileSys.WriteAllText(ProjectPath & "config.txt", "123456789注册码", False)
       
        Code = FileSys.ReadAllText(ProjectPath & "config.txt")
       
        Try
           
            sss = DecryptText(Code,"abc","abc")
           
        Catch ex As Exception
           
        End Try
       
       
       
        If Code > "" AndAlso sss = ComputerId Then '如果注册码正确
           
            OK = True
           
        End If
       
    End If
   
    If n > 0 AndAlso Ok = False Then
       
        Messagebox.Show("您正在使用的产品已经超出试用次数!")
       
        Syscmd.Project.Exit()
       
    End If
   
End If

n = n + 1


SaveConfigValue("Count",n)

 


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


加好友 发短信
等级:一尾狐 帖子:426 积分:3505 威望:0 精华:0 注册:2015/4/17 9:13:00
  发帖心情 Post By:2015/8/24 10:50:00 [只看该作者]

  If n > 0 Then
        
        Forms("注册").Open() '     
  'FileSys.WriteAllText(ProjectPath & "config.txt", "123456789注册码", False)

关于上面红色我改在这样,你看正确不

  If n > 0 Then
        
        Forms("注册").Open() '
        Dim zcm As String = Forms("注册").Controls("TextBox2").Value
        
        FileSys.WriteAllText(ProjectPath & "config.txt", "zcm", False)


另外又出现以下这个问题,我在发布的时候添加了空白的config.txt,与Project文件同属一个文件夹,可是你上面的代码却是ProjectPath,就出现以下问题
 .NET Framework 版本:2.0.50727.3053
Foxtable 版本:2014.11.11.1
错误所在事件:项目,AfterOpenProject
详细错误信息:
Could not find file 'D:\ctpt\project\config.txt'


下面这样修改可以吗

If n > 0 Then
        
        Forms("注册").Open() '
        Dim zcm As String = Forms("注册").Controls("TextBox2").Value
        
        FileSys.WriteAllText("D:\ctpt\project\config.txt", "zcm", False)



[此贴子已经被作者于2015/8/24 11:08:55编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/24 11:14:00 [只看该作者]

 

[此贴子已经被作者于2015/8/24 11:15:05编辑过]

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/24 11:16:00 [只看该作者]

1、你的项目要有config.txt文件;

 

2、你要在注册窗口的确定按钮,就往txt文件写入内容,才能继续下面的代码。

 

Dim zcm As String = Forms("注册").Controls("TextBox2").Value
FileSys.WriteAllText(ProjectPath & "config.txt", zcm, False)


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


加好友 发短信
等级:一尾狐 帖子:426 积分:3505 威望:0 精华:0 注册:2015/4/17 9:13:00
  发帖心情 Post By:2015/8/24 11:30:00 [只看该作者]

我觉得真的还不如用回写入注册表的方法,可是写在注册表的代码,为什么有些电脑再更新后不用再输入注册码,有时还是需要输入,以下是我的代码


Dim Count As Integer

Count = Registry.GetValue("HKEY_CURRENT_USER\Software\MyApp","Count",0)

Dim Code As String = GetConfigValue("Register" & ComputerId,"")

Dim sss As String

Try

    sss = DecryptText(Code,"abc","abc")

Catch ex As Exception

End Try

Dim Ok As Boolean

If Code > "" AndAlso sss = ComputerId Then '如果注册码正确

    OK = True

Else

    If Count >= 0 Then

        Forms("注册").Open()

        Code = GetConfigValue("Register" & ComputerId,"")

        Try

            sss = DecryptText(Code,"abc","abc")

        Catch ex As Exception

        End Try

       

        If Code > "" AndAlso sss = ComputerId Then '如果注册码正确

            OK = True

        End If

    End If

    If Count >= 0 AndAlso Ok = False Then

        Messagebox.Show("您正在使用的产品需要先正确注册!")

        Syscmd.Project.Exit()

    End If

End If

Registry.SetValue("HKEY_CURRENT_USER\Software\MyApp","Count",Count + 1)


请问哪里不正确了

[此贴子已经被作者于2015/8/24 11:35:31编辑过]

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