void ReadBlockDataEvent(object sender, EventArgs e) { try { ulong uFactoryCode = 0; _strReadBlockData = ""; RWCard.rf_card(_iPonter, 0, ref uFactoryCode); if (uFactoryCode != 0) { if ((_FactoryCode == string.Empty) || (uFactoryCode.ToString() != _FactoryCode)) { tmTrick.Stop(); int iSec = _iBlock / 4; RWCard.rf_load_key_hex(_iPonter, 0, Convert.ToInt16(iSec), _strPassWordA); //加载A密码 RWCard.rf_load_key_hex(_iPonter, 4, Convert.ToInt16(iSec), _strPassWordB); //加载B密码 int i = RWCard.rf_authentication(_iPonter, 0, Convert.ToInt16(iSec)); //验证密码 if (i == 0) { byte[] bytData = new byte[32]; i = RWCard.rf_read_hex(_iPonter, Convert.ToInt16(_iBlock), bytData);//读取_iBlock块区中的数据 if (i == 0) { _strReadBlockData = DecConverString(bytData); _FactoryCode = uFactoryCode.ToString(); _iValid = 1; //读取成功 SetUIValue(sender, e); } else { _iValid = 0; //读取失败 } } else { _iValid = -1; //密码验证失败 } } } else { _iValid = -2; //未寻到卡 } tmTrick.Start(); } catch (Exception ex) { Log.WriteLog("IC卡读写控件-读卡", ex); } }