예제 #1
0
        /// <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("");
        }
예제 #2
0
        /// <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("");
        }