Foxtable(狐表)用户栏目专家坐堂 → [求助]第三方加密狗使用问题


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

主题:[求助]第三方加密狗使用问题

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


加好友 发短信
等级:二尾狐 帖子:517 积分:4325 威望:0 精华:0 注册:2014/11/26 15:23:00
[求助]第三方加密狗使用问题  发帖心情 Post By:2019/3/22 11:07:00 [只看该作者]

我这边有用磐石加密狗,NT77,按如下操作遇到问题:

1 复制nt77.dll到foxtable安装目录下

2 在项目的全局代码中添加:

'查找加密锁
Declare Function NTFindFirst Lib "NT77.dll" (ByVal NTCode As String) As Integer

'查询硬件ID
Declare Function NTGetHardwareID Lib "NT77.dll" (ByRef HardwareID As StringBuilder) As Integer

'登录加密锁
Declare Function NTLogin Lib "NT77.dll" (ByVal NTpassword As String) As Integer

'存储区数据读取
Declare Function NTRead Lib "NT77.dll" (ByVal address As Integer, ByVal Length As Integer, ByRef pBuffer As Byte) As Integer

'存储区数据写入
Declare Function NTWrite Lib "NT77.dll" (ByVal address As Integer, ByVal Length As Integer, ByRef pBuffer As Byte) As Integer

'登出加密锁
Declare Function NTLogout Lib "NT77.dll" () As Integer

 

 

3 写按钮代码:

查找加密狗的代码(没问题,可以查找到):

Dim Rtn As Integer
Rtn = 1
Dim NTCode As String ' 加密锁识别码,通过设号工具来设置
Dim lblstatus As WinForm.Label = e.Form.Controls("lbl_status")
NTCode = "1234567890ABCDEF"
'查找指定加密锁识别码的加密锁,如果返回值为 0,表示加密锁存在.
Rtn = NTFindFirst(NTCode)'查找计算机上连接的加密锁
If (Rtn <> 0) Then '查找指定加密锁识别码的加密锁,如果返回值为 0,表示加密锁存在.
    ' 如果返回值不为0,则可以通过返回值Rtn查看错误代码
    lblstatus.Text = "未找到加密锁,错误码为:" & Rtn
   
Else
    lblstatus.ForeColor = Color.Blue
    lblstatus.Text = "已找到加密锁"
End If

 

查询硬件ID的代码(一点击就整个foxtable退出完全没有提示):

Dim Rtn As Integer
Rtn = 1
Dim HardwareID As StringBuilder = new StringBuilder(32) '硬件序列号
Dim lbllogin As WinForm.Label = e.Form.Controls("lbl_login")
Rtn = NTGetHardwareID(HardwareID) '获取硬件序列号,如果返回值为 0,表示获取硬件序列号成功.

If (Rtn <> 0) Then
    ' 如果返回值不为0,则可以通过返回值Rtn查看错误代码
    lbllogin .Text = "获取硬件序列号失败 错误码:" & Rtn
   
Else
    lbllogin .ForeColor = Color.Blue
    lbllogin .Text = "获取硬件序列号成功 " & HardwareID.ToString()
End If

 

 


图片点击可在新窗口打开查看此主题相关图片如下:3333333.jpg
图片点击可在新窗口打开查看

 

现在都不知道怎么办才好了。

[此贴子已经被作者于2019/3/22 11:08:07编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/22 12:28:00 [只看该作者]

1、用【管理员身份】运行foxtable测试;

 

2、发布foxtable后,用【管理员身份】运行exe程序测试;

 

3、有可能不兼容你的dll,你用vs工具测试,是否正常?


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


加好友 发短信
等级:二尾狐 帖子:517 积分:4325 威望:0 精华:0 注册:2014/11/26 15:23:00
  发帖心情 Post By:2019/3/22 13:08:00 [只看该作者]

1 我的ft就是用管理员运行的,可以做web

2 发布后用管理员权限运行,一样的问题

3 vs工具测试正常,dll就是vs的bin目录中的


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


加好友 发短信
等级:二尾狐 帖子:517 积分:4325 威望:0 精华:0 注册:2014/11/26 15:23:00
  发帖心情 Post By:2019/3/22 14:47:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:111111.jpg
图片点击可在新窗口打开查看
现在遇到这个问题,这是读取加密狗数据的

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/22 14:57:00 [只看该作者]

你定义的时候,是不是错了?

 

Declare Function NTRead Lib "NT77.dll" (ByVal address As Integer, ByVal Length As Integer, ByRef pBuffer As Byte) As Integer

 

如果要定义数组,请改成 byte()


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


加好友 发短信
等级:二尾狐 帖子:517 积分:4325 威望:0 精华:0 注册:2014/11/26 15:23:00
  发帖心情 Post By:2019/3/22 15:58:00 [只看该作者]

是的,我改成byte()后,不会报错了,但是还是一样的,就是点击了,没有任何提示就退出狐表了

 

Dim Rtn As Integer = 1
Dim address As Integer = 0
Dim Length As Integer = 64
Dim pBuffer As Byte() = New Byte(63) {}
Rtn = NTRead(address, Length, pBuffer)
Dim txtread As WinForm.TextBox = e.Form.Controls("txt_read")
If Rtn <> 0 Then
    txtread.Text = "读取数据失败,错误码:" & Rtn.ToString()
Else
    txtread.Text = System.Text.Encoding.[Default].GetString(pBuffer)
End If


图片点击可在新窗口打开查看此主题相关图片如下:1212121212.jpg
图片点击可在新窗口打开查看
[此贴子已经被作者于2019/3/22 15:59:05编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/3/22 16:23:00 [只看该作者]

 

1、叫对方给你vb.net的实例,然后改到foxtable里面测试;

 

2、或者,你在vs里面测试成功以后,把各个功能写在dll里发布出来,直接引用那你vs里面dll,调用里面的方法。

 

 


 回到顶部