因为公司使用的飞天诚信公司ePass1000的USBKEY,在B/S下无法采用像C/S下通过调用其提供的动态库的方法实现从USBKEY中读取其文件内容的方法。而且,由飞天诚信公司提供的帮助文档也写得过于简单,我通过从网上搜索只能找到本公司李会军写的关于此方面的例子。于是我找飞天诚信公司寻求帮助,并通过实验实现了文件读取的功能。以下是用VBSCRIPT实现的文件读取功能:
例:
<OBJECT id="ePass" style="LEFT: 0px; TOP: 0px" height="0" width="0" classid="clsid:E740C5DF-3XXX-46A7-80EC-364D1ADB6CF0"
name="ePass" VIEWASTEXT>
</OBJECT>
<script language="vbscript">
function ReadKey()
On Error Resume Next
ePass.GetLibVersion
‘判断是否正确驱动
If Err.number = &H1B6 Then
MsgBox "USBKEY驱动程序未安装或安装不正确!"
document.Form1.txtUserName.value=""
document.Form1.txtIkeyNum.value="Bad"
Exit function
end if
ePass.OpenDevice 1, ""
‘打开USBKEY 判读是否插入KEY
If Err then
MsgBox " 请 插 入 USBKEY ! "
document.Form1.txtUserName.value=""
document.Form1.txtIkeyNum.value="Bad"
ePass.CloseDevice
Exit function
End if
dim results
dim filesize
dim filecontent
filecontent = ""
filesize = 0
results = ""
'取得key号
results = ePass.GetStrProperty(7,0,0)
‘打开一个文件此处为第0个文件
ePass.OpenFile 0,0
'取得key文件的size 3为文件的SIZE其他在帮助文件中有注明
filesize = ePass.GetFileInfo(0,3,0,0)
'取得key文件内容 不能超过文件内容的大小
filecontent =ePass.Read (0,0,0,filesize)
filecontent = left(filecontent,filesize)
ePass.CloseFile
ePass.CloseDevice
document.Form1.txtIkeyNum.value=results
document.Form1.TextBox2.value=filecontent
End function
</script>
例:
<OBJECT id="ePass" style="LEFT: 0px; TOP: 0px" height="0" width="0" classid="clsid:E740C5DF-3XXX-46A7-80EC-364D1ADB6CF0"
name="ePass" VIEWASTEXT>
</OBJECT>
<script language="vbscript">
function ReadKey()
On Error Resume Next
ePass.GetLibVersion
‘判断是否正确驱动
If Err.number = &H1B6 Then
MsgBox "USBKEY驱动程序未安装或安装不正确!"
document.Form1.txtUserName.value=""
document.Form1.txtIkeyNum.value="Bad"
Exit function
end if
ePass.OpenDevice 1, ""
‘打开USBKEY 判读是否插入KEY
If Err then
MsgBox " 请 插 入 USBKEY ! "
document.Form1.txtUserName.value=""
document.Form1.txtIkeyNum.value="Bad"
ePass.CloseDevice
Exit function
End if
dim results
dim filesize
dim filecontent
filecontent = ""
filesize = 0
results = ""
'取得key号
results = ePass.GetStrProperty(7,0,0)
‘打开一个文件此处为第0个文件
ePass.OpenFile 0,0
'取得key文件的size 3为文件的SIZE其他在帮助文件中有注明
filesize = ePass.GetFileInfo(0,3,0,0)
'取得key文件内容 不能超过文件内容的大小
filecontent =ePass.Read (0,0,0,filesize)
filecontent = left(filecontent,filesize)
ePass.CloseFile
ePass.CloseDevice
document.Form1.txtIkeyNum.value=results
document.Form1.TextBox2.value=filecontent
End function
</script>