亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#用Activex實現Web客戶端讀取RFID功能的代碼

2020-01-24 03:44:11
字體:
來源:轉載
供稿:網友
由于要在Web項目中采用RFID讀取功能,所以有必要開發Activex,一般情況下開發Activex都采用VC,VB等,但對這兩塊不是很熟悉,所以采用C#編寫Activex的方式實現。
本文方法參考網絡
1.編寫WindowsFromControls
2.發布WindowsFormControls為Activex
3.在web中使用該Activex
 
首先編寫windows控件
如何編寫不再詳述(注意一個地方,GUID自己用vs工具生成一個,下面會用到。我的0CBD6597-3953-4B88-8C9F-F58B1B023413) 
重要的類:
復制代碼 代碼如下:

using System;
using System.Runtime.InteropServices;

namespace RFIDReader
{
public class ReadRfid
{
[DllImport("MasterRD.dll")]
private static extern int rf_init_com(int port, int baud);
[DllImport("MasterRD.dll")]
private static extern int rf_request(short icdev, byte model, ref short TagType);
[DllImport("MasterRD.dll")]
private static extern int rf_write(int icdev, char _Adr, char _Data);
[DllImport("MasterRD.dll")]
private static extern int rf_anticoll(short icdev, byte bcnt, ref byte ppsnr, ref byte pRLength);
[DllImport("MasterRD.dll")]
private static extern int rf_ClosePort();

public string CardNum
{
get { return getCardNum(); }
}
private string getCardNum()
{
int post = 4; //調用COM1口
int baud = 9600;
int i = -1;
byte model = 82;
byte b1 = 4;
short TagType = 4;
byte[] buf1 = new byte[200];
try
{
rf_init_com(post, baud);
rf_request(0, model, ref TagType);
rf_anticoll(0, 4, ref buf1[0], ref b1);
string s1 = "";
for (i = 0; i < b1; i++)
{
s1 = s1 + System.Convert.ToString(long.Parse(buf1[i].ToString()), 16).ToUpper();
}
rf_ClosePort();
if (s1 == "0000")
{ throw (new Exception()); }
return s1;
}
catch (Exception)
{
}
return "";
}

}
}

復制代碼 代碼如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;

namespace RFIDReader
{
[ComImport, GuidAttribute("<SPAN style="COLOR: #800000">0CBD6597-3953-4B88-8C9F-F58B1B023413</SPAN><SPAN style="COLOR: #800000"> </SPAN>")]
[InterfaceTypeAttribute(ComInterfaceType.InterfaceIsIUnknown)]
public interface IObjectSafety
{
[PreserveSig]
void GetInterfacceSafyOptions(
int riid,
out int pdwSupportedOptions,
out int pdwEnabledOptions);

[PreserveSig]
void SetInterfaceSafetyOptions(
int riid,
int dwOptionsSetMask,
int dwEnabledOptions);
}
}

復制代碼 代碼如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using CJ;
namespace RFIDReader
{
[Guid("0CBD6597-3953-4B88-8C9F-F58B1B023413"), ProgId("RFIDReader.Reader"), ComVisible(true)]
public partial class Reader : UserControl, IObjectSafety
{
public Reader()
{
InitializeComponent();
}
#region IObjectSafety成員
public void GetInterfacceSafyOptions(int riid, out int pdwSupportedOptions, out int pdwEnabledOptions)
{
pdwSupportedOptions = 1;
pdwEnabledOptions = 2;
}
public void SetInterfaceSafetyOptions(int riid, int dwOptionsSetMask, int dwEnabledOptions)
{
throw new NotImplementedException();
}
#endregion
private void timer1_Tick(object sender, EventArgs e)
{
ReadRfid rfid = new ReadRfid();
string str = rfid.CardNum;
if (str != "")
{
textBox1.Text = str;
GetInfo();
}
}
public int TimerSpan
{
get
{
return timer1.Interval;
}
set
{
timer1.Interval = value;
}
}
public string CardNum
{
get
{
return textBox1.Text;
}
}
private void GetInfo()
{
this.label1.Text = "cccc";
}
}
}

為了能夠在所有客戶端ie上顯示控件,要在程序的AssemblyInfo.cs里添加如下語句
[assembly: AllowPartiallyTrustedCallers()]
下一步,右鍵該項目,屬性,生成,將為com互操作注冊,打上勾勾
 
 
然后編譯,如果沒有問題,那么測試下,應該可以讀取RFID的ID到文本框了。
 
2.制作安裝程序
跟普通的制作安裝程序一樣,新建一個安裝程序,然后刪掉里面的文件夾。
鼠標右鍵空白區域-》添加-》項目輸出--》選擇主輸出
 
這樣即可生成安裝包了。
 
到現在其實已經可以用了,但為了方便我們可以進一步生成cab包。
下載CABARC.exe。解壓縮,到bin目錄中執行如下doc命令
cabarc n 生成的cab名.cab  安裝文件.msi  install.inf
install.inf內容如下:

[version] 
signature="$CHICAGO$" 
AdvancedINF=2.0 

[Setup Hooks] 
hook1=hook1
[hook1]
run=msiexec.exe /i "%EXTRACT_DIR%/ReaderInstaller.msi" /qn

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

3.在web中使用。

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

<object id="RFIDReader" classid="clsid:0CBD6597-3953-4B88-8C9F-F58B1B023413"
        codebase="RFID/RFIDREADER.cab">
    </object>

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

這里的RFID使用的是MasterRD.dll和CFCom.dll不同產品使用可能不同,同時注意RFID的COM端口號,本例為測試例子,所以寫死了COM口,客戶端IE瀏覽時,需要將RFID的端口改成對應的。

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

參考文獻 //www.49028c.com/article/27115.htm
源文件下載地址:http://xiazai.VeVB.COm/201105/yuanma/RFIDReader.rar

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
岛国av在线不卡| 久久久精品视频在线观看| 国产精品欧美在线| 国产精品成人国产乱一区| 亚洲天堂男人的天堂| 美乳少妇欧美精品| 欧美日韩电影在线观看| 91超碰中文字幕久久精品| 国产日韩欧美综合| 亚洲成人激情在线| 亚洲free性xxxx护士白浆| 久久综合伊人77777| 国产精品欧美一区二区三区奶水| 国产精品流白浆视频| 久久精品精品电影网| 中文字幕一区二区精品| 性欧美长视频免费观看不卡| 欧美激情视频网址| 亚洲精选在线观看| 热草久综合在线| 欧美老少做受xxxx高潮| 久久99国产精品自在自在app| 欧美激情视频网址| 日韩黄在线观看| 日韩视频在线观看免费| 亚洲精品91美女久久久久久久| 亚洲精品乱码久久久久久金桔影视| 亚洲高清av在线| 亚洲精品久久7777777| 欧美性xxxx极品hd欧美风情| 国产99久久精品一区二区永久免费| 亚洲品质视频自拍网| 中文字幕亚洲综合| 91夜夜未满十八勿入爽爽影院| 青青久久av北条麻妃海外网| 一区二区亚洲欧洲国产日韩| 国产精品第8页| 日韩av男人的天堂| 色综合天天综合网国产成人网| 播播国产欧美激情| 欧美影院久久久| 在线观看国产成人av片| 欧美精品video| 亚洲成人精品av| 亚洲图片在线综合| 亚洲摸下面视频| 日韩免费精品视频| 国产精品视频精品视频| 国产精品美女无圣光视频| 国产精品电影在线观看| 亚洲欧美激情在线视频| 亚洲国产婷婷香蕉久久久久久| 亚洲xxxx视频| 国产精品普通话| 久久天天躁狠狠躁夜夜躁2014| 在线不卡国产精品| 国产精品美女久久久久av超清| 欧美午夜片欧美片在线观看| 精品国产成人在线| 国内精品久久久久久影视8| 精品中文字幕视频| 欧美视频二区36p| 久久久久久久久久久人体| 国产精品1区2区在线观看| 欧美性精品220| 精品欧美国产一区二区三区| 亚州av一区二区| 亚洲成人精品久久久| 青青精品视频播放| 福利视频一区二区| 亚洲精品720p| 亚洲成人三级在线| 国产女精品视频网站免费| 日韩欧亚中文在线| 日韩激情av在线播放| 欧美激情国产精品| 不用播放器成人网| 国产丝袜一区二区| 亚洲国产99精品国自产| 亚洲一区第一页| 亚洲精品久久久久久久久久久久久| 日本国产精品视频| 亚洲国产精品一区二区三区| 久久久精品一区二区| 久久久久国产精品免费网站| 国内精品久久久久久中文字幕| 欧美日韩福利在线观看| 欧美性精品220| 久久精品视频中文字幕| 亚洲欧洲午夜一线一品| 欧美有码在线视频| 日韩欧美亚洲一二三区| 国产裸体写真av一区二区| 久久成人国产精品| 人九九综合九九宗合| 精品久久久久人成| 琪琪亚洲精品午夜在线| 欧美乱妇40p| 成人免费看吃奶视频网站| 精品久久久香蕉免费精品视频| 性欧美亚洲xxxx乳在线观看| 久久精品久久久久久国产 免费| 欧美亚洲视频在线看网址| 亚洲精品久久在线| 欧洲永久精品大片ww免费漫画| 国产精品久久久久久一区二区| 狠狠躁天天躁日日躁欧美| 91精品久久久久久久久久久久久| 日韩男女性生活视频| 亚洲国产婷婷香蕉久久久久久| 欧美性猛交xxxxx免费看| www亚洲欧美| 国产精品午夜一区二区欲梦| 国产在线拍揄自揄视频不卡99| 欧美性高跟鞋xxxxhd| 久久视频中文字幕| 中文字幕一区日韩电影| 欧美精品videos性欧美| 亲爱的老师9免费观看全集电视剧| 国产在线视频一区| 国产亚洲综合久久| 欧美高清视频在线| 国产欧美亚洲视频| 亚洲美女自拍视频| 国产精品美女视频网站| 91在线免费视频| 国产成人高清激情视频在线观看| 欧美电影在线观看高清| 青青草国产精品一区二区| 中文字幕日韩欧美在线视频| 亚洲乱码一区av黑人高潮| 久久久国产精彩视频美女艺术照福利| 在线播放国产一区中文字幕剧情欧美| 色综合91久久精品中文字幕| 国产一区二区三区四区福利| 欧美激情乱人伦一区| 亚洲a区在线视频| 亚洲精品电影网站| 亚洲国产毛片完整版| 精品国产91久久久久久| 欧美成人免费播放| 欧美性高跟鞋xxxxhd| 国产一区二区香蕉| 影音先锋日韩有码| 日韩电影网在线| 亚洲自拍偷拍视频| 久久精品视频在线观看| 欧美激情视频在线免费观看 欧美视频免费一| 欧美一级免费看| 一本色道久久88综合亚洲精品ⅰ| 国产精品专区一| 日韩av电影院| 久久九九有精品国产23| 久久亚洲春色中文字幕| 国产精品三级久久久久久电影| 欧洲s码亚洲m码精品一区| 日韩经典第一页| 日韩网站在线观看| 亚洲福利视频在线| 97视频在线观看视频免费视频| 国产精品中文字幕久久久| 51色欧美片视频在线观看| 日韩精品中文字幕有码专区| 成人激情电影一区二区|