Foxtable(狐表)用户栏目专家坐堂 → 求专家解答


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

主题:求专家解答

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


加好友 发短信
等级:一尾狐 帖子:499 积分:3262 威望:0 精华:0 注册:2022/3/25 7:44:00
求专家解答  发帖心情 Post By:2022/4/13 10:21:00 [显示全部帖子]

图片点击可在新窗口打开查看图片点击可在新窗口打开查看3、授权按钮的代码设置为:

Dim kh As String = e.Form.Controls("TextBox1").Text
Dim
 rq As String =  Format(e.Form.Controls("DateTimePicker1").Value,"yyyy-MM-dd")
Dim
 cs As String = e.Form.Controls("NumericComboBox1").Value
Dim
 qd As String = "     " '5个半角空格,用于初始化保存实际启动次数的存储器空间.
Dim
 pw1 As String = "46DFA0D7"
Dim
 pw2 As String = "C292C1DB"
kh
 = kh.PadRight(50," ").SubString(0,50'客户名称最多50个字符,不够50用空格补
cs
 = cs.PadRight(5," ").Substring(0,5'启动次数最多允许5位数,不够的用空格补
If
 UKey.Start() Then
    If UKey.WriteStr(0,kh,pw1,pw2) AndAlso UKey.WriteStr(50,rq,pw1,pw2) AndAlso UKey.WriteStr(60,cs,pw1,pw2) AndAlso UKey.WriteStr(65,qd,pw1,pw2)
        Messagebox.Show(
"
授权成功!","提示", MessageBoxButtons.OK,MessageBoxIcon.Information)
    Else
        Messagebox.Show(
"
写入授权信息失败!","提示", MessageBoxButtons.OK,MessageBoxIcon.Information)
    
End If
Else

    Messagebox.Show("请插上UKey!","提示", MessageBoxButtons.OK,MessageBoxIcon.Information)

End
 If

你也许会奇怪,为什么客户名称和次数,都要固定长度,不够的补空格?
你想一下,如果你之前已经对某个UKey进行过授权,授权客户是“北京市公安局”,现在想重新授权,将客户改为“联想电脑”,如果不采用固定长度且补空格的方式,那么重新授权后,客户名称将是"联想电脑安局"。

5、现在回到原来的项目中,将项目事件BeforeOpenProject事件代码设置为:

If UKey.Start() Then
    If 
UKey.Encrypt2("abc") <> "483DBF9FDD0574C0" Then
        
MessageBox.Show("请插上XX公司提供的UKey!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
        
e.Cancel = True
    Else
        Dim 
khs As String = UKey.ReadStr(0,50'从存储器读取04950个字节的内容,也就是授权客户名称
        Dim 
rqs As String = UKey.ReadStr(50,10'从存储器读取505910个字节的内容,也就是截止日期
        Dim 
css As String = UKey.ReadStr(60,5'从存储器读取60645个字节的内容,也就是允许启动次数
        Dim 
yqs As String = UKey.ReadStr(65,5'从存储器读取65695个字节的内容,也就是已经启动次数
        Dim 
rq As Date
        Dim 
cs As Integer
        Dim 
qs As Integer
        
'从存储器读取出来值的是字符,所以还需要转换一下,因为截止日期是Date型,次数是Integer型
        
Date.TryParse(rqs,rq)
        
Integer.TryParse(css,cs)
        
Integer.TryParse(yqs,qs)
        
qs = qs + 1 '已经启动次数加1
        UKey.WriteStr(65,qs,"46DFA0D7","C292C1DB"'将已经启动次数写入存储器
        
If qs > cs '如果已经启动次数大于允许启动次数
            
MessageBox.Show("你的UKey已经超过允许启动次数!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
            
e.Cancel = True
        ElseIf 
Date.Today > rq '如果今天的日期大于截止日期
            
MessageBox.Show("你的UKey已经过期!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
            
e.Cancel = True
        End If
        If 
e.Cancel = False Then
            
MessageBox.Show("尊敬的用户" & khs.Trim() & ",欢迎使用本软件!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
        End If
    End If
Else
    
MessageBox.Show("启动UKey失败!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    
e.Cancel = True
End If

上面的代码采用用户加密函数Encrypt2判断用户已经插上你公司提供的UKey,并判断此UKey是否还在授权范围之内,所有条件符合才允许打开你的项目。

7、最后增加一个计划,执行间隔为10000毫秒,也就是10秒,计划代码为:

If UKey.Encrypt1("abc") <> "E5FC1B19625C5C4A" Then
    
MessageBox.Show("请插上XX公司提供的UKey!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    DataTables.Save()
    Syscmd.Project.
Exit

End
 If


我复制按照以上代码设置,求专家指导,谢谢


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


加好友 发短信
等级:一尾狐 帖子:499 积分:3262 威望:0 精华:0 注册:2022/3/25 7:44:00
  发帖心情 Post By:2022/4/13 11:03:00 [显示全部帖子]

没有买,ukey是在你们官网买码?



 回到顶部