/// <summary> /// 读取UsbKey文件的内容,返回内容格式为 "序列号,UsbId"格式的字符串 /// 如果未能正确读取文件,返回空字符。 /// </summary> /// <param name="driveName">U盘所在盘符</param> /// <param name="message">操作的消息</param> /// <returns>UsbKey文件的内容</returns> public static string ReadUsbKeyFile(string driveName, out string message) { if (driveName.EndsWith("\\")) { driveName += "\\"; } string strCurrKeyFileName = driveName + Key_File_Name; message = ""; try { string strResult = ""; using (StreamReader reader = File.OpenText(strCurrKeyFileName)) { strResult = reader.ReadToEnd(); } if (strResult != "") { message = "OK"; CheckCode cc = new CheckCode(); return(cc.Decode(strResult)); } else { message = "未能正确读取文件,文件内容可能为空!"; } } catch (Exception ex) { message = ex.Message; } return(""); }
/// <summary> /// 获取当前UsbKey,根据当前附加的序列号,生成 "序列号,UsbId"格式的字符串,并返回加密后的结果 /// 如果没有找到设备,那么返回空字符串 /// 如果返回值为空,请检查 message 的值。 /// </summary> /// <param name="sourceNumber">要附加的序列号</param> /// <param name="message">生成的操作信息</param> /// <returns>当前加密后的UsbKey字符串</returns> public static string GetCurrentUsbKey(string sourceNumber, out string message) { string strUsbId = GetUSBId(); if (strUsbId != "") { if (strUsbId.Split(';').Length == 1) { CheckCode cc = new CheckCode(); message = "OK"; string strTemp = sourceNumber + "," + strUsbId; return(cc.Encode(strTemp)); } else { message = "当前有多个U盘,请拨除其它U盘。"; return(""); } } message = "未找到U盘或者U盘没有物理序列号。"; return(""); }