有CVR100.cab包一个.. 内有PCVR_IDCard.ocx文件..
命令行, regsvr32 PCVR_IDCard.oxc , 要加路径啊!
唉..对注册不是很了解呢.. 产品本身的驱动自动给我注册好了,所以这一步我也没做..
注册成功后就可以调用了..
<OBJECT
classid="clsid:10946843-7507-44FE-ACE8-2B3483D179B7"
codebase="CVR100.cab#version=3,0,3,3"
id="CVR_IDCard"
name="CVR_IDCard"
width=119
height=136
align=center
hspace=0
vspace=0
>
</OBJECT>
这个就是关键了, classid和version都是可以在注册表中找到的..
然后就是调用 如: CVR_IDCard.ReadCard,CVR_IDCard.Name....
其实步骤很少,只是在注册这方面有点搞不清呢, 出错了也不知道怎么处理.. 我用神思的产品的时候,注册成功了,但就是拿不到对象呢.. 后面解决不了,就换了个产家的产品(华视).. 写的代码都一样,唯一的不同就是神思的是我自己注册的,他们给的列子也运行不起,华视的安装驱动的时候自动给我注册好了..唉..
下面是完整的html代码.. 贴着以后看.. haha
==============================================================
<HTML>
<head>
<script language="JavaScript">
<!--
function HideActiveX() {
//CVR_IDCard.Visible=false;
ClearIDCard();
ClearForm();
document.all['ReadResult'].value ="等待验证";
return true;
}
function ClearIDCard() {
CVR_IDCard.Name="";
CVR_IDCard.NameL="";
CVR_IDCard.Sex="";
//CVR_IDCard.SexL="";
CVR_IDCard.Nation="";
//CVR_IDCard.NationL="";
CVR_IDCard.Born="";
//CVR_IDCard.BornL="";
CVR_IDCard.Address="";
CVR_IDCard.CardNo="";
CVR_IDCard.Police="";
CVR_IDCard.Activity="";
CVR_IDCard.NewAddr="";
return true;
}
function ClearForm() {
document.all['Name'].value = "";
document.all['Sex'].value = "";
document.all['Nation'].value = "";
document.all['Born'].value = "";
document.all['Address'].value = "";
document.all['CardNo'].value = "";
document.all['Police'].value = "";
document.all['Activity'].value = "";
document.all['NewAddr'].value = "";
document.all['ActivityLFrom'].value = "";
document.all['ActivityLTo'].value = "";
document.all['PhotoBuffer'].value = "";
return true;
}
function FillForm() {
var pName=CVR_IDCard.NameL; //var pNameL=CVR_IDCard.NameL;
var pSex=CVR_IDCard.SexL; //var pSexL=CVR_IDCard.SexL;
var pNation=CVR_IDCard.NationL; //var pNationL=CVR_IDCard.NationL;
var pBorn=CVR_IDCard.BornL; //var pBornL=CVR_IDCard.BornL;
var pAddress=CVR_IDCard.Address;
var pCardNo=CVR_IDCard.CardNo;
var pPolice=CVR_IDCard.Police;
var pActivity=CVR_IDCard.Activity;
var pNewAddr=CVR_IDCard.NewAddr;
var pActivityLFrom=CVR_IDCard.ActivityLFrom;
var pActivityLTo=CVR_IDCard.ActivityLTo;
var pPhotoBuffer=CVR_IDCard.GetPhotoBuffer;
var pSAMID=CVR_IDCard.SAMID;
alert(pSAMID);
document.all['Name'].value = pName; //document.all['Name'].value = pNameL;
document.all['Sex'].value = pSex; // document.all['Sex'].value = pSexL;
document.all['Nation'].value = pNation; //document.all['Nation'].value = pNationL;
document.all['Born'].value = pBorn; //document.all['Born'].value = pBornL;
document.all['Address'].value = pAddress;
document.all['CardNo'].value = pCardNo;
document.all['Police'].value = pPolice;
document.all['Activity'].value = pActivity;
document.all['NewAddr'].value = pNewAddr;
document.all['ActivityLFrom'].value = pActivityLFrom;
document.all['ActivityLTo'].value = pActivityLTo;
document.all['PhotoBuffer'].value = pPhotoBuffer;
//显示照片Servlet
return true;
}
function ReadIDCard() {
CVR_IDCard.PhotoPath=document.all['PhotoPath'].value;
CVR_IDCard.TimeOut=3;
ClearIDCard();
ClearForm();
document.all['ReadResult'].value ="请放卡...";
var strReadResult=CVR_IDCard.ReadCard;
FillForm();
document.all['ReadResult'].value ="返回值:"+strReadResult;
//alert(strReadResult);
if (strReadResult=="0"){
//if (confirm("需要查询黑名单吗?"))
//{
var windowX = (window.screen.width - 640) / 2 ;
var windowY = (window.screen.height - 100) / 2 ;
var newWin=window.open("asp/SearchBlacklist.asp?CardNo="+document.all['CardNo'].value+"&Name="+document.all['Name'].value,"newwindow", "top="+windowY+",left="+windowX+",width=640,height=100");
//newWin.moveTo(windowX,windowY);
//window.location="asp/SearchBlacklist.asp?CardNo="+document.all['CardNo'].value;
//}
}
return true;
}
function DoStopRead() {
CVR_IDCard.DoStopRead;
ClearIDCard();
ClearForm();
document.all['ReadResult'].value ="用户已取消读卡"
return true;
}
function DoCheckReader() {
var State=CVR_IDCard.GetState;
document.all['ReadResult'].value =State;
var pSAMID=CVR_IDCard.SAMID;
alert(ppSAMID);
return true;
}
function Save_IDCard() {
var pName=CVR_IDCard.Name;
var pSex=CVR_IDCard.Sex;
var pNation=CVR_IDCard.Nation;
var pBorn=CVR_IDCard.Born;
var pAddress=CVR_IDCard.Address;
var pCardNo=CVR_IDCard.CardNo;
var pPolice=CVR_IDCard.Police;
var pActivity=CVR_IDCard.Activity;
var pNewAddr=CVR_IDCard.NewAddr;
var pActivityLFrom=CVR_IDCard.ActivityLFrom;
var pActivityLTo=CVR_IDCard.ActivityLTo;
var pPhotoBuffer=CVR_IDCard.GetPhotoBuffer;
if (pName == "") {
ClearForm();
alert('读卡内容为空,无法保存数据!请先读卡,再保存。');
return false;
}
document.all['Name'].value = pName;
document.all['Sex'].value = pSex;
document.all['Nation'].value = pNation;
document.all['Born'].value = pBorn;
document.all['Address'].value = pAddress;
document.all['CardNo'].value = pCardNo;
document.all['Police'].value = pPolice;
document.all['Activity'].value = pActivity;
document.all['NewAddr'].value = pNewAddr;
document.all['ActivityLFrom'].value = pActivityLFrom;
document.all['ActivityLTo'].value = pActivityLTo;
document.all['PhotoBuffer'].value = pPhotoBuffer;
//相片文件默认保存在 CVR_IDCard.PhotoPath
ClearIDCard();
return true;
}
function Addto_BlackList(){
if (document.all['CardNo'].value == "") {
alert('身份证号内容为空,无法添加黑名单数据,请输入身份证号及姓名!');
return false;
}
window.location="asp/post.asp?CardNo=" + document.all['CardNo'].value+"&Name="+document.all['Name'].value;
return true;
}
function All_BlackList(){
window.location="asp/ALLBlacklist.asp";
return true;
}
function Search_BlackList(){
if (document.all['CardNo'].value == "") {
alert('请输入 身份证号 及 姓名 查询黑名单数据!');
return false;
}
var windowX = (window.screen.width - 640) / 2 ;
var windowY = (window.screen.height - 100) / 2 ;
var newWin=window.open("asp/SearchBlacklist.asp?CardNo="+document.all['CardNo'].value+"&Name="+document.all['Name'].value,"newwindow", "top="+windowY+",left="+windowX+",width=640,height=100");
return true;
}
//-->
</script>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>第二代居民身份证阅读软件——深圳华视电子读写设备有限公司(c)版权所有</title>
<link rel="stylesheet" href="pic/style3.css" type="text/css">
</head>
<body onLoad="HideActiveX()" topmargin="0" bgcolor="#D2F0FF">
<center>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="100%" colspan="3">
<p align="center"><b><font color="#5555FF" size="6"> 深圳华视电子读写设备有限公司</font></b></td>
</tr>
<tr>
<td width="33%"></td>
<td width="33%">
<p align="center"><font color="#FF0000">第二代居民身份证阅读软件</font>
</td>
<td width="34%"></td>
</tr>
<tr>
<td width="33%" bgcolor="#FF9900"> </td>
<td width="33%" bgcolor="#FF9900">
<p align="center"><font color="#FF0000">(For
RS232/USB Reader)</font></td>
<td width="34%" bgcolor="#FF9900"> </td>
</tr>
</table>
<p>
<OBJECT
classid="clsid:10946843-7507-44FE-ACE8-2B3483D179B7"
codebase="CVR100.cab#version=3,0,3,3"
id="CVR_IDCard"
name="CVR_IDCard"
width=119
height=136
align=center
hspace=0
vspace=0
>
</OBJECT>
</center><form name="MyForm" action="asp/SaveIDCard.asp" method=post onSubmit="return Save_IDCard()"><table border="0" width="100%" cellpadding="0" cellspacing="0"><tr>
<td width="21%"></td>
<td width="51%" colspan="3">
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="33%">
<p align="right">
<input type="button" name="ReadCard" value="读身份证" onClick="return ReadIDCard()">
</td>
<td width="33%">
<p align="center"><input type="button" name="StopRead" value="停止读卡" onClick="return DoStopRead()">
</td>
<td width="34%">
<p align="left">
<input type="button" name="StopRead1" value="检测设备" onClick="return DoCheckReader()">
</td>
</tr>
</table>
</td>
<td width="28%"></td>
</tr>
<tr>
<td width="21%"></td>
<td width="51%" colspan="3">
<HR>
</td>
<td width="28%"></td>
</tr>
<tr>
<td width="21%"></td>
<td width="11%">
</td>
<td width="18%"> </td>
<td width="23%" valign="top">
</td>
<td width="28%"></td>
</tr>
<tr>
<td width="21%"></td>
<td width="11%">
<p align="right">姓名:</p>
</td>
<center>
<td width="18%"><input type="text" name="Name" size="20" class=Input3> </td>
</center>
<td width="23%" valign="top">
</td>
<center>
<center>
<center>
<td width="28%"></td>
</center></center></center></tr>
<tr>
<td width="21%"></td>
<td width="11%">
<p align="right">性别:</p>
</td>
<center>
<td width="18%"><input type="text" name="Sex" size="20" class=Input3></td>
</center>
<td width="23%" valign="top">
</td>
</tr>
<tr>
<td width="21%"></td>
<td width="11%">
<p align="right">民族:</p>
</td>
<center>
<td width="18%"><input type="text" name="Nation" size="20" class=Input3></td>
</center>
<td width="23%" valign="top">
</td>
</tr>
<tr>
<td width="21%"></td>
<td width="11%">
<p align="right">出生:</p>
</td>
<center>
<td width="18%"><input type="text" name="Born" size="20" class=Input3></td>
</center>
<td width="23%" valign="top">
</td>
</tr>
<tr>
<td width="21%"></td>
<td width="11%">
<p align="right">地址:</p>
</td>
<center>
<td width="41%" colspan="2"><input type="text" name="Address" size="49" class=Input2></td>
<td width="28%"></td>
</center></tr>
<tr>
<td width="21%"></td>
<td width="11%">
<p align="right"><font color="#FF0000"><b>身份证号:</b></font></p>
</td>
<center>
<td width="41%" colspan="2"><input type="text" name="CardNo" size="49" class=Input2 style="color: #FF0000"></td>
<td width="28%"></td>
</center></tr>
<tr>
<td width="21%"></td>
<td width="11%">
<p align="right">签发机关:</p>
</td>
<center>
<td width="41%" colspan="2"><input type="text" name="Police" size="49" class=Input2></td>
<td width="28%"></td>
</center></tr>
<tr>
<td width="21%"></td>
<td width="11%">
<p align="right">有效期限:</p>
</td>
<center>
<td width="41%" colspan="2"><input type="text" name="Activity" size="49" class=Input2></td>
<td width="28%"></td>
</center></tr>
<tr>
<td width="21%"></td>
<td width="11%">
<p align="right">期限起始:</p>
</td>
<center>
<td width="41%" colspan="2"><input type="text" name="ActivityLFrom" size="49" class=Input2> </td>
<td width="28%"></td>
</center></tr>
<tr>
<td width="21%"></td>
<td width="11%">
<p align="right">期限失效:
</td>
<center>
<center>
<center>
<td width="41%" colspan="2"><input type="text" name="ActivityLTo" size="49" class=Input2> </td>
<td width="28%"></td>
</center></center></center></tr>
<tr>
<td width="21%"></td>
<td width="11%">
<p align="right">最新地址:</p>
</td>
<center>
<td width="41%" colspan="2"><input type="text" name="NewAddr" size="49" class=Input2> </td>
<td width="28%"></td>
</center></tr>
<tr>
<td width="21%"></td>
<td width="11%">
<p align="right">照片路径:</p>
</td>
<td width="41%" colspan="2"><input type="text" name="PhotoPath" value="C:/" size="49" class=Input2> </td>
<center>
<center>
<center>
<td width="28%"></td>
</center></center></center></tr>
<tr>
<td width="21%"></td>
<td width="11%" valign="top">
<p align="right">
照片编码:</p>
<p align="center">
</p>
</td>
<center>
<center>
<center>
<td width="41%" colspan="2"><textarea rows="4" name="PhotoBuffer" cols="47" class=MultiEditBox></textarea> </td>
<td width="28%"></td>
</center></center></center></tr>
<tr>
<td width="21%"></td>
<td width="11%">
</td>
<td width="41%" colspan="2"> </td>
<td width="28%"></td>
</tr>
<tr>
<td width="21%"></td>
<td width="11%">
<p align="right"><font color="#0000FF">操作提示:</font></p>
</td>
<td width="41%" colspan="2">
<input type="text" name="ReadResult" value="等待验证" size="32"><input type=submit name="submit" value="保存读卡结果">
</td>
<td width="28%"></td>
</tr>
<tr>
<td width="21%"></td>
<td width="11%">
</td>
<td width="41%" colspan="2">
<p align="left">
<input type="button" name="BtnAddBlackList" value="加入黑名单" onClick="return Addto_BlackList()">
<input type="button" name="BtnAllBlackList" value="全部黑名单" onClick="return All_BlackList()">
</p>
<p align="left">
<input type="button" name="BtnSearchBlackList" value="查询黑名单" onClick="return Search_BlackList()">
</p>
<p>
</td>
<td width="28%"></td>
</tr>
<tr>
<td width="21%"></td>
<td width="11%">
</td>
<td width="41%" colspan="2">
</td>
<center>
<td width="28%"></td>
</center></tr>
</table>
</form>
</body>
</HTML>