以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]软加密:关于远程升级后总要输注册码 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=73225) |
||||
-- 作者:乡里出城 -- 发布时间:2015/8/14 15:22:00 -- [求助]软加密:关于远程升级后总要输注册码 项目的AfterOpenProject事件加入软加密注册的代码,如帮助里的代码一样,正确没问题,可是现在提的问题主要是,每次远程更新升级时,再打开项目就存在,有些客户端打开项目时要再次输入注册码才能进去,有些客户端则不用输注册就可以进去了,是什么原因。有什么方法解决。想解决,项目只要注册一次就可以了,不管重卸还是升级更新,不需要每次在远程更新升级后,再打开客户端还在输入注册码才能进去。 [此贴子已经被作者于2015/8/14 15:23:32编辑过]
|
||||
-- 作者:大红袍 -- 发布时间:2015/8/14 15:54:00 -- 方法一:把注册码存储到注册表那里去,不要用saveConfigValue
http://www.foxtable.com/help/topics/2051.htm
方法二:用一个txt文件夹存放注册码信息,不要用saveConfigValue
|
||||
-- 作者:乡里出城 -- 发布时间:2015/8/14 15:58:00 -- 但安全性是不是不如saveConfigValue了 |
||||
-- 作者:大红袍 -- 发布时间:2015/8/14 16:22:00 -- 以下是引用乡里出城在2015/8/14 15:58:00的发言:
但安全性是不是不如saveConfigValue了
保存的是激活码。
没有什么安全不安全的。激活码泄露又没有什么用。 |
||||
-- 作者:乡里出城 -- 发布时间: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) |
||||
-- 作者:大红袍 -- 发布时间: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 Dim Ok As Boolean If Code > "" AndAlso sss = ComputerId Then \'如果注册码正确 n = n + 1
|
||||
-- 作者:乡里出城 -- 发布时间: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编辑过]
|
||||
-- 作者:大红袍 -- 发布时间:2015/8/24 11:14:00 --
[此贴子已经被作者于2015/8/24 11:15:05编辑过]
|
||||
-- 作者:大红袍 -- 发布时间:2015/8/24 11:16:00 -- 1、你的项目要有config.txt文件;
2、你要在注册窗口的确定按钮,就往txt文件写入内容,才能继续下面的代码。
Dim zcm As String = Forms("注册").Controls("TextBox2").Value |
||||
-- 作者:乡里出城 -- 发布时间: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编辑过]
|