C#用Activex实现Web客户端读取RFID功能的代码

科星互联RFID网络读卡器 for C# 因为项目中需要使用网络接口读卡器,公司购买了科星互联产品,外观如下: 使用产品提供的开发工具,可以对读卡器进行配置,其中最主要的就是两点: 本地IP为读卡器的IP地址:192.168.1.230 子网掩码:255.255.255.0 网关地址为网络中路由器的IP地址:192.168.1.1 远程IP为工作模式使用TCP客户端时使用:192.168.1.251 阅读详情

由于要在Web项目中采用RFID读取功能,所以有必要开发Activex,一般情况下开发Activex都采用VC,VB等,但对这两块不是很熟悉,所以采用C#编写Activex的方式实现


由于要在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了。

参考文献 http://www.jb51.net/article/27115.htm
源文件下载地址:http://xiazai.jb51.net/201105/yuanma/RFIDReader.rar


RFID读写器web插件实现读卡写卡 目标: 通过友我科技的服务,实现跨浏览器的高频IC卡(S50含M1卡)的读卡(使用读卡器YW-605HA) 基于RFID读写器云服务的web开发指南: 1、下载客户端的服务,并安装 http://www.youwokeji.com.cn/cloudreader/YOWORFIDReaderCloudForWeb.exe 2、安装后在页面中包含js文件 <script language="javascript" src="http://127.0.0.1:8008/YOWOCloudRFIDReade 阅读详情

相关推荐

基于 C# (WPF) 设计的 RFID 学生考勤系统

RFID 学生考勤系统是一种利用射频识别技术 (RFID) 自动记录学生考勤信息的系统。RFID 读写器: 用于读取 RFID 标签信息。RFID 标签: 贴在学生身上,用于存储学生信息。考勤机: 集成 RFID 读写器和计算机,用于采集学生考勤数据。考勤管理软件: 用于存储、管理和分析考勤数据。RFID 学生考勤系统是一种高效、便捷的考勤管理工具,可以帮助学校和企业提高考勤管理效率,并为学生和员工提供更方便的考勤体验。

走向CTO的路上... 1509

C#通过Activex实现Web客户端读取RFID

  由于要在Web项目中采用RFID读取功能,所以有必要开发Activex,一般情况下开发Activex都采用VC,VB等,但对这两块不是很熟悉,所以采用C#编写Activex的方式实现。 本文方法参考网络 1.编写WindowsFromControls 2.发布WindowsFormControls为Activex 3.在web中使用该Activex   首先编写windows...

weixin_33795093的博客 391

BarCodeWiz条码控件实战演示项目

ActiveX控件是微软在1990年代中期提出的一套基于组件对象模型(Component Object Model, COM)的软件架构,旨在为Windows平台提供可复用、跨语言调用的可视化和非可视化控件。其核心设计理念在于将功能模块封装成独立二进制单元(通常是DLL或OCX文件),供不同开发环境如VB6、C++、ASP等直接引用并实例化使用。从技术本质上看,ActiveX控件继承自OLE(Object Linking and Embedding)技术,但进一步扩展了网络部署能力与事件驱动机制。

weixin_32999557的博客 943

使用C#开发ActiveX控件

原文: http://www.cnblogs.com/yilin/archive/2009/09/15/1567332.html 附件下载(源代码+安装文件+教程) 0. 前言 ActiveX控件以前也叫做OLE控件或OCX控件,它是一些软件组件或对象,可以将其插入到WEB网页或其它应用程序中。使用ActiveX插件,可以轻松方便的在 Web页中插入多媒体效果、交互...

网站开发初中级代码参考-转载 94

C#版RFID无线射频识别系统

C#版RFID无线射频识别系统,ZK-RFID102是一款高性能的UHF超高频电子标签一体机,完全自主知识产权设计,结合专有的高效信号处理算法,在保持高识读率的同时,实现对电子标签的快速读写处理,可广泛应用于物流、门禁系统、防伪系统及生产过程控制等多种无线射频识别(RFID)系统,支持EPCC1-G2、18000-6B的读、写、查询等功能的实现操作。

基于C#的RFID卡识别和读写

现在射频卡(RFID)用的还是比较多的,在C#界面通过串口得到RFID的相关信息后,对得到的信息进行解析后,可以对RFID卡进行读和写,可用于刷卡消费的记录等场合。

C#用Activex实现Web客户端读取RFID功能

  由于要在Web项目中采用RFID读取功能,所以有必要开发Activex,一般情况下开发Activex都采用VC,VB等,但对这两块不是很熟悉,所以采用C#编写Activex的方式实现。 本文方法参考网络 1.编写WindowsFromControls 2.发布WindowsFormControls为Activex 3.在web中使用该Activex   首先编写windows...

weixin_33989058的博客 280

C# RFID读写

C# RFID读写

ASP.NET C# 之 Activex用C#编写ActiveX控件(一)

当我们访问工行的网站的时候,在登陆的时候系统要加载自己的activex控件,为什么呢??今天想实现一下这个功能.试一试吧! 转载文章 用C#编写ActiveX控件(一) 前些日子做一个Web项目,必须自己编写一个ActiveX控件。如今的ActiveX控件大多是使用VB/C++来开发的,而我对他们并不熟悉,因此考虑使用熟悉的C#编写Activ...

weixin_33921089的博客 103

RFID标签读写程序-c#版.rar

RFID标签读写程序-c#版程序源码

自动读卡版_c#RFID读写器_

RFID读写,C#语言编写读取IC卡数据并管理

RFID设备管理C#客户端学习笔记之1:布局

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34064653的博客 470

C#Com串口收发指令读写RFID

C#开发的RS232串口读写NFC卡源码,使用Serial port类,展示了打开串口设置不同的波特率、数据位、停止位、校验位,向串口发送读、写NFC标签的指令,串口接收读取的NFC标签数据等,解决串口接收数据不完整易分包等现象。

用C#实现的条形码和二维码编码解码器

转自:http://www.cnblogs.com/tuyile006/archive/2013/01/16/2863367.html 本篇介绍可以在C#中使用的1D/2D编码解码器。条形码的应用已经非常普遍,几乎所有超市里面的商品上面都印有条形码;二维码也开始应用到很多场合,如火车票有二维码识别、网易的首页有二维码图标,用户只需要用手机扫描一下就可以看到手机版网易的网址,免去了输入...

weixin_30765505的博客 271

从转发时钟到嵌入式时钟:CDR、CTLE与DFE在高速串行链路中的协同演进

本文深入探讨了高速串行链路中CDR、CTLE与DFE技术的协同演进。从转发时钟到嵌入式时钟的转变,详细分析了CDR的工作原理与实现架构,以及CTLE和DFE在信道损耗补偿和ISI干扰消除中的关键作用。通过实战案例展示了这些技术在28Gbps至112Gbps SerDes设计中的优化策略与性能提升。

weixin_42539414的博客 294

无人机飞控算法开发实战:从零到一构建企业级飞控系统

本文系统介绍了无人机飞控算法开发的完整流程,包括飞行动力学模型建立、传感器校准与数据融合、主流控制算法实现(PID、ADRC、EKF)以及企业级飞控系统架构设计。通过结合开源飞控框架(如PX4)和实际工程经验,提供了完整的代码实现示例,帮助学者从零开始掌握无人机飞控开发的核心技术。文中详细讲解了四旋翼无人机的动力学模型、传感器校准方法、EKF状态估计算法、PID和ADRC控制算法的实现,以及MAVLink通信协议的集成。最后,总结了完整的飞控系统开发流程和未来发展趋势。

全栈 3401

Read-a-Card 读取 RFID 卡

快速轻松地读取 RFID 卡 Read-a-Card 是一种软件实用程序,用于从大多数非接触式 RFID 卡、感应令牌和标签中读取 ID 数据。Read-a-Card 与广泛的卡片技术和系统兼容,具有许多功能,可以将桌面读卡功能快速轻松地集成到门禁系统和其他软件解决方案中。 Read-a-Card 在非接触式智能卡读卡器和您的软件之间提供了关键的缺失链接。与存储在 USB 记忆棒上的数据不同,仅靠操作系统无法从非接触式卡或标签中读取 ID,使用的方法取决于读卡器、卡技术以及使用的存储和加密方法。Read-a

控件与插件之大全 1073

核磁分析必备,ACD/Labs软件使用全解析

核磁共振(NMR)是化学分析中的重要工具,而ACD/Labs提供了一套强大的软件解决方案。从实验设计到数据解读,ACD/Labs 的 NMR 预测可以显著加快您的工作流程。使用 ACD/NMR 预测可以:根据化学结构预测 1H、13C、15N、19F 和 31P 核的全套 1D 和 2D NMR 光谱;在几秒钟内计算化学位移和耦合常数;利用内部数据训练算法,提高新化学空间的准确性。

a13981820402的博客 5634

RFID

/******************************************* * 湖南创乐博智能科技有限公司 * function:get the id of RFID key * RFID Arduino Uno * VCC 3.3V * RST 2 ...

acktomas的博客 5180

基于STM32的RS485土壤氮磷钾与PH传感器数据采集与OLED显示实战(附完整代码)

本文详细介绍了基于STM32单片机通过RS485协议采集土壤氮磷钾与PH传感器数据的实战项目。涵盖硬件选型、连接方法、Modbus-RTU通信协议解析、STM32程序实现及OLED显示,提供完整代码和调试技巧,适用于农业物联网环境监测系统。

kotlin6android的博客 334

目标检测技术的发展:从R-CNN、YOLO到DETR、DINO

OV-DINO的出现标志着在开放域目标检测领域的重大进步,其在处理未见过的物体类别时的能力得到了显著提升。这项技术对于需要适应未知或变化环境的应用具有重要意义,如自动驾驶、机器人视觉、安防监控等。

DeepAIedu的博客 2629
上一篇: 使用VS2010 C#开发ActiveX控件(下),完整代码打包下载
下一篇: 淘宝销售技巧
haoxingfengcrazy
博客等级 码龄20年 156粉丝 27原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值