日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
C#用Activex實現(xiàn)Web客戶端讀取RFID功能

由于要在Web項目中采用RFID讀取功能,所以有必要開發(fā)Activex,一般情況下開發(fā)Activex都采用VC,VB等,但對這兩塊不是很熟悉,所以采用C#編寫Activex的方式實現(xiàn)。

創(chuàng)新互聯(lián)公司專注于企業(yè)全網(wǎng)營銷推廣、網(wǎng)站重做改版、葉城網(wǎng)站定制設(shè)計、自適應(yīng)品牌網(wǎng)站建設(shè)、H5場景定制、商城網(wǎng)站建設(shè)、集團公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站建設(shè)、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計等建站業(yè)務(wù),價格優(yōu)惠性價比高,為葉城等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

本文方法參考網(wǎng)絡(luò)

1.編寫WindowsFromControls

2.發(fā)布WindowsFormControls為Activex

3.在web中使用該Activex

首先編寫windows控件

如何編寫不再詳述(注意一個地方,GUID自己用vs工具生成一個,下面會用到。我的0CBD6597-3953-4B88-8C9F-F58B1B023413)

重要的類:

  
 
 
 
  1. using System;   
  2. using System.Runtime.InteropServices;   
  3. namespace RFIDReader   
  4. {   
  5. public class ReadRfid   
  6. {   
  7. [DllImport("MasterRD.dll")]   
  8. private static extern int rf_init_com(int port, int baud);   
  9. [DllImport("MasterRD.dll")]   
  10. private static extern int rf_request(short icdev, byte model, ref short TagType);   
  11. [DllImport("MasterRD.dll")]   
  12. private static extern int rf_write(int icdev, char _Adr, char _Data);   
  13. [DllImport("MasterRD.dll")]   
  14. private static extern int rf_anticoll(short icdev, byte bcnt, ref byte ppsnr, ref byte pRLength);   
  15. [DllImport("MasterRD.dll")]   
  16. private static extern int rf_ClosePort();   
  17. public string CardNum   
  18. {   
  19. get { return getCardNum(); }   
  20. }   
  21. private string getCardNum()   
  22. {   
  23. int post = 4; //調(diào)用COM1口   
  24. int baud = 9600;   
  25. int i = -1;   
  26. byte model = 82;   
  27. byte b1 = 4;   
  28. short TagType = 4;   
  29. byte[] buf1 = new byte[200];   
  30. try   
  31. {   
  32. rf_init_com(post, baud);   
  33. rf_request(0, model, ref TagType);   
  34. rf_anticoll(0, 4, ref buf1[0], ref b1);   
  35. string s1 = "";   
  36. for (i = 0; i < b1; i++)   
  37. {   
  38. s1 = s1 + System.Convert.ToString(long.Parse(buf1[i].ToString()), 16).ToUpper();   
  39. }   
  40. rf_ClosePort();   
  41. if (s1 == "0000")   
  42. { throw (new Exception()); }   
  43. return s1;   
  44. }   
  45. catch (Exception)   
  46. {   
  47. }   
  48. return "";   
  49. }   
  50. }   
  51. }  

view sourceprint?

  
 
 
 
  1. using System;   
  2. using System.Collections.Generic;   
  3. using System.Linq;   
  4. using System.Text;   
  5. using System.Runtime.InteropServices;   
  6. namespace RFIDReader   
  7. {   
  8. [ComImport, GuidAttribute("0CBD6597-3953-4B88-8C9F-F58B1B023413
  9.  ")]   
  10. [InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]   
  11. public interface IObjectSafety   
  12. {   
  13. [PreserveSig]   
  14. void GetInterfacceSafyOptions(   
  15. int riid,   
  16. out int pdwSupportedOptions,   
  17. out int pdwEnabledOptions);   
  18. [PreserveSig]   
  19. void SetInterfaceSafetyOptions(   
  20. int riid,   
  21. int dwOptionsSetMask,   
  22. int dwEnabledOptions);   
  23. }   
  24. }   
  25. using System;using System.Collections.Generic;using System.ComponentModel;  
  26. using System.Drawing;  
  27. using System.Data;  
  28. using System.Linq;  
  29. using System.Text;  
  30. using System.Windows.Forms;  
  31. using System.Runtime.InteropServices;  
  32. using CJ;  
  33. namespace RFIDReader{     
  34.  [Guid("0CBD6597-3953-4B88-8C9F-F58B1B023413"), ProgId("RFIDReader.Reader"), ComVisible(true)]      
  35.  public partial class Reader : UserControl,IObjectSafety      
  36. {     
  37.      public Reader()       
  38.    {            
  39.   InitializeComponent();      
  40.      }        
  41.   #region IObjectSafety 成員      
  42. public void GetInterfacceSafyOptions(int riid, out int pdwSupportedOptions, out int pdwEnabledOptions)    
  43.       {     
  44.        pdwSupportedOptions = 1;        
  45.       pdwEnabledOptions = 2;      
  46.     }       
  47.    public void SetInterfaceSafetyOptions(int riid, int dwOptionsSetMask, int dwEnabledOptions)   
  48.      {             
  49.  throw new NotImplementedException();        
  50.   }     
  51.      #endregion       
  52.    private void timer1_Tick(object sender, EventArgs e)        
  53.   {             
  54.  ReadRfid rfid=new ReadRfid();        
  55.       string str = rfid.CardNum;          
  56.     if (str != "")             
  57.  {               
  58.    textBox1.Text = str; GetInfo();         
  59.      }        
  60.   }        
  61.   public int TimerSpan     
  62.      {             
  63.  get { return timer1.Interval; }      
  64.         set { timer1.Interval = value; }        
  65.   }        public string CardNum        
  66.   {       
  67.        get { return textBox1.Text; }      
  68.     }      
  69.     private void GetInfo()       
  70.    {                      
  71.     this.label1.Text = "cccc";    
  72.       }    }}  

為了能夠在所有客戶端ie上顯示控件,要在程序的AssemblyInfo.cs里添加如下語句

   
 
 
 
  1. [assembly: AllowPartiallyTrustedCallers()] 

下一步,右鍵該項目,屬性,生成,將為com互操作注冊,打上勾勾

然后編譯,如果沒有問題,那么測試下,應(yīng)該可以讀取RFID的ID到文本框了。

2.制作安裝程序

跟普通的制作安裝程序一樣,新建一個安裝程序,然后刪掉里面的文件夾。

鼠標(biāo)右鍵空白區(qū)域-》添加-》項目輸出--》選擇主輸出

這樣即可生成安裝包了。

到現(xiàn)在其實已經(jīng)可以用了,但為了方便我們可以進一步生成cab包。

下載CABARC.exe。解壓縮,到bin目錄中執(zhí)行如下doc命令

cabarc n 生成的cab名.cab 安裝文件.msi install.inf

install.inf內(nèi)容如下:

   
 
 
 
  1. [version]   
  2. signature="$CHICAGO$"   
  3. AdvancedINF=2.0  
  4.  
  5. [Setup Hooks]   
  6. hook1hook1=hook1   
  7. [hook1]  
  8. run=msiexec.exe /i "%EXTRACT_DIR%\ReaderInstaller.msi" /qn 

 

修改稱自己的安裝文件即可

3.在web中使用。

新建一個web項目,在default.aspx中輸入一下代碼即可使用

   
 
 
 
  1. codebase="RFID/RFIDREADER.cab"> 
  2.  

這里的clsid就是自己生成的GUID編號

這里的RFID使用的是MasterRD.dll和CFCom.dll不同產(chǎn)品使用可能不同,同時注意RFID的COM端口號,本例為測試?yán)樱詫懰懒薈OM口,客戶端IE瀏覽時,需要將RFID的端口改成對應(yīng)的。

注意:如果發(fā)布到服務(wù)器上,客戶端ie上無法顯示控件,那么請將訪問地址添加到ie的受信任站點,如果不能安裝cab那么只能用戶自己安裝Activex了。


本文題目:C#用Activex實現(xiàn)Web客戶端讀取RFID功能
鏈接URL:http://m.5511xx.com/article/djpopeo.html