调用一款ID读卡器的API方法

本文介绍了一款ID读卡器的DLL文件及其使用方法,包括读取卡号、设备号及触发蜂鸣器等功能。提供了.NET环境下的C#调用示例。

此款ID读卡器提供两个dll文件:IDUSB.DLL、OUR_IDR.dll

========================================================

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

namespace Attend
{
public class IdCardHelper
{
/// <summary>
/// 蜂鸣
/// </summary>
/// <param name="comport"></param>
/// <returns></returns>
[DllImport("OUR_IDR.dll")]
public static extern byte idr_beep(UInt32 beepTime);

/// <summary>
/// 读卡,返回卡的信息
/// </summary>
/// <param name="comport"></param>
/// <returns></returns>
[DllImport("OUR_IDR.dll")]
public static extern byte idr_read([MarshalAs(UnmanagedType.LPArray)] byte[] serial);

/// <summary>
/// 读卡,返回卡的信息
/// </summary>
/// <param name="comport"></param>
/// <returns></returns>
[DllImport("OUR_IDR.dll")]
public static extern byte pcdgetdevicenumber([MarshalAs(UnmanagedType.LPArray)] byte[] devicenumbe);
}
}

===============================================================================

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

namespace Attend
{
public class CardOperate
{
/// <summary>
/// 蜂鳴
/// </summary>
/// <param name="beepTime"></param>
/// <returns></returns>
public static byte DeviceBeep(UInt32 beepTime)
{
try
{
return IdCardHelper.idr_beep(beepTime);
}
catch
{
return 0;
}
}

/// <summary>
/// 讀取設備號
/// </summary>
/// <returns></returns>
public static string DeviceRead()
{
try
{
string deviceNo = "";
byte[] btDevice = new byte[4];
byte readInfo = IdCardHelper.pcdgetdevicenumber(btDevice);

for (int i = 0; i < btDevice.Length; i++)
{
string strTemp = btDevice[i].ToString("x");
if (strTemp.Length == 1)
strTemp = "0" + strTemp;
deviceNo += strTemp;
}
return deviceNo;
}
catch
{
return null;
}
}

/// <summary>
/// 讀取卡號
/// </summary>
/// <returns></returns>
public static string CardRead()
{
try
{
byte[] cardNo = new byte[5];
byte readInfo = IdCardHelper.idr_read(cardNo);

string strCard = "";
for (int i = 0; i < cardNo.Length; i++)
{
string strTemp = cardNo[i].ToString("x");
if (strTemp.Length == 1)
strTemp = "0" + strTemp;
strCard += strTemp;
}
strCard = strCard.Substring(2, 8);
int intTemp = Convert.ToInt32(strCard, 16);
strCard = intTemp.ToString();

intTemp = strCard.Length;
for (int i = 0; i < 10 - intTemp; i++)
{
strCard = "0" + strCard;
}

//if (strCard == "0000000000")
//{
// DeviceBeep(800);
//}
//else
//{
// DeviceBeep(200);
//}

return strCard;
}
catch
{
return null;
}
}
}
}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值