1. 程式人生 > >通過OCX控制元件實現HTML頁面讀取二代證資訊

通過OCX控制元件實現HTML頁面讀取二代證資訊

近段工作需要接觸了ocx控制元件.. 頭痛啊..對我來說是新東西呢..

有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()">&nbsp;&nbsp; 
          <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>

相關推薦

通過OCX控制元件實現HTML頁面讀取資訊

近段工作需要接觸了ocx控制元件.. 頭痛啊..對我來說是新東西呢.. 有CVR100.cab包一個.. 內有PCVR_IDCard.ocx檔案..  命令列, regsvr32 PCVR_IDCard.oxc , 要加路徑啊! 唉..對註冊不是很瞭解呢.. 產品本身的驅

關於PN532 讀取UUID____記錄自己親自實驗成功!!!

相關文章 //========================================================================================================

c# 利用webbrower控制元件列印html——實現列印頁面設定

領導分配了一個任務,利用c#連線印表機,列印一個html頁面,對於一個Java本專業還不太熟練的我,之前從未接觸過c#,挑戰還是很大的。但是沒辦法,做唄!!!首先找一個寫c#的工具唄,所以下載了vs2015,實現方法如下:1、新建一個form專案2、form中整合一個webb

通過WebBrowser控制元件實現IE瀏覽器選單功能

這篇文章所講的技術,只支援IE瀏覽器,請讀者注意 WebBrowser控制元件,是IE瀏覽器的內建控制元件。顧名思義,這個控制元件我們可以看成是瀏覽器本身。通過WebBrowser控制元件,可以實現一部分IE瀏覽器的選單命令。 1. 使用 首先在畫面上要通過<obje

Java Web中使用JSPSmartUpload控制元件實現檔案的上傳和下載(解決了中文亂碼問題)(JSP頁面採用GBK編碼)

package edu.uestc.updown; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletConfig; import javax.servlet.ServletException

IE瀏覽器下OCX控制元件的相容問題(續集)——Javascript程式碼實現

根據上一篇 http://blog.csdn.net/yangyuyu77584/article/details/39694387  博文方案,現給Javascript程式碼實現。 1.瀏覽器的判斷程式碼。(jQuery新版我還沒有使用,不知道是否已經修改了)這裡我自己補充

呼叫OCX控制元件時的宣告和實現

FirstLessonOcx.h #if !defined(AFX_FIRSTLESSONOCX_H__0CA538A0_1E9A_49D9_ADBE_0D21B83849DF__INCLUDED_) #define AFX_FIRSTLESSONOCX_H__0CA53

JS實現OCX控制元件的事件響應

JS支援OCX控制元件的事件(event),當OCX控制元件定義的事件發生時,JS可以捕獲該事件並對事件進行相應的處理。 個人理解,其實就是事件的響應由誰來完成,OCX控制元件自身肯定是可以實現的,JS提供的這種機制使JS也可以完成OCX控制元件事件的響應。 簡單舉例如下

jsp頁面呼叫ocx控制元件

1.ID:為控制元件提供一個標識名稱,為HTML程式碼提供一種訪問該控制元件的方式。 2.CLASSID:是該控制元件唯一的UUID,告訴IE裝入哪個物件。如果使用已經開發好的控制元件,它的CLASSID可以通過呼叫Win95或NT下的應用Regedit來查詢。從開始選單中執行該程式,展開HKEY_CLASS

AjaxPanel自定義控制元件實現頁面無重新整理資料互動(做了個示例程式, 效果確實比較Cool, 用法非常簡單! )(示例程式碼下載)

(一) . 簡要           AjaxPanel, 一個自定義控制元件, 只要在頁面中將AjaxPanel作為父控制元件, 則它內部的控制元件在執行時無重新整理.            做了個程式試了一下果然比較Cool !  下面介紹一下具體配置, 配置也比較簡單.

WebBrowser呼叫帶有OCX控制元件頁面報錯處理方式

1、報錯內容: 託管除錯助手“LoaderLock”在“******.vshost.exe”中檢測到問題。 其他資訊: 正嘗試在 OS 載入程式鎖內執行託管程式碼。不要嘗試在 DllMain 或映像初

如何使用js來實現通過href完成多個html頁面之間的傳遞引數

有些時候我們需要在一連串的網站跳轉中都要使用某些引數值,那麼樓主分享的是:在不使用php和資料庫的情況下,如何通過簡單的js程式碼來實現多個網站之間的數值傳遞。(適合html+js菜鳥參考,高手勿噴~o(^▽^)o) 本文所要實現的功能如下: 1、A.htm

C#自動實現Dll(OCX)控制元件註冊的兩種方法

      儘管MS為我們提供了豐富的.net framework庫,我們的程式C#開發帶來了極大的便利,但是有時候,一些特定功能的控制元件庫還是需要由第三方提供或是自己編寫。當需要用到Dll引用的時候,我們通常會通過“新增引用”的方式將它們納入到專案中,然後就可以像使用自

webbrowser 控制元件實現WinForm與WebForm互動

 WebBrowser 控制元件可以讓你裝載Windows Form 應用程式中的 Web 網頁和其它採用瀏覽器的檔案。可以使用webbrowser 控制元件將現有的web框架控制項加入至 Windows Form 客戶端應用程式。還是直接看程式碼吧。 WebBrowser 控制項

電腦端 日期控制元件JS+html

<!-- 日期 --> <input type="text" class="form-control" name="keyword" onClick="WdatePicker()" placeholder="開始日期" /> <input type="text"

自定義的控制元件 實現一個繞圓圈的箭頭

自定義的類 import android.content.Context; import android.content.res.TypedArray; import android.graphics.Canvas; import android.graphics.Color; import

安卓入門之ListView控制元件實現

ListView介紹 安卓中ListView是一種自定義清單表,我們經常在淘寶上搜索寶貝後所出現的上下可滑動的商品列表、QQ/微信訊息列表等都是ListView控制元件來做的,下面紅框框中就是ListView。 有沒有一種豁然開朗的感覺(瘋狂暗示)。。。所以掌握ListView這種

手機顯示資料的原理:手機通過WebView控制元件顯示網頁資料

WebView控制元件是用於顯示網頁的,手機根據網頁建立一個WebView,之後顯示出來,所以顯示WebView網頁是通過WebView控制元件顯示的。     <script type="text/javascript" charset="utf-8

安卓第三天---ViewPager控制元件實現滑動切換圖片

先不說那麼多,給個圖片表示成功! 這是兩張圖片切換時截的圖,不是錯誤喲! 首先上佈局程式碼: mian_activity.xml佈局檔案(csdn的xml檔案顯示有問題“<”符號,在不顯示的地方我就用“《"代替了,請諒解) <?xml version="1.0" encod

IOS開發學習筆記十六 使用UITableView控制元件實現微博列表效果

效果:專案地址 微博列表唯一需要注意的是每個條目的列表行高不一致,需要在UITableView的代理方法heightForRowAtIndexPath中動態設定行高 需要建立Module物件CZMicroBlogFrame來儲存UITableCell的子View的