static void Main(string[] args) { try { Console.WriteLine(RegUtility.GetCpuNumber()); RegLib.reginfo reg = new RegLib.reginfo(); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } }
public static void ReadRegInfo() { //2011.4.26 修改为从注册表获取 RegistryKey hkml = Registry.LocalMachine; RegistryKey software = hkml.OpenSubKey("SOFTWARE", true); RegistryKey aimdir = software.OpenSubKey("IPSI", true); string tmp; string[] arytmp; //如果已经有使用过软件,通过注册表读取第一次使用时间+硬盘序列号+序列号 if (aimdir != null && aimdir.GetValue("PatSI") != null) { try { tmp = aimdir.GetValue("PatSI").ToString(); tmp = encryptDecryptStr(tmp); //如果仅用|分割,在本身就含有|字符的时候可能会出现问题 string[] sep = new string[] { "@|#" }; arytmp = tmp.Split(sep, StringSplitOptions.RemoveEmptyEntries); //arytmp = tmp.Split('|'); if (arytmp.Length >= 3) { //第一次使用时间 _FirstUsedTime = Convert.ToDateTime(arytmp[0]); //最后一次使用时间 _LastUsedTime = Convert.ToDateTime(arytmp[1]); //序列号 _SerialNo = arytmp[2]; #region 取生成时间和机器码 string strCreatDate = String.Empty; strCreatDate = _SerialNo.Substring(_SerialNo.Length - 20, 10); StrSqEndDate = _SerialNo.Substring(_SerialNo.Length - 10); StrPC_SQM = _SerialNo.Substring(0, _SerialNo.Length - 20); #endregion dtCreatDate = DateTime.Parse(strCreatDate); dtSqEndDate = DateTime.Parse(StrSqEndDate).AddDays(1); //DateTime dtWebHost ////防止调整客户端时间,造成一直不过期的现象,要求重新注册 //if (!(DateTime.Now > _LastUsedTime && _LastUsedTime > _FirstUsedTime)) //{ // #region 采取策略是强制过期还是保留使用时间差? // //使用强制过期,不满年直接变为满年 // TimeSpan ts = (_LastUsedTime - _FirstUsedTime).Duration(); // _FirstUsedTime = DateTime.Now.AddDays(-(ts.Days / nRegDay + 1) * nRegDay); // _LastUsedTime = DateTime.Now; // #endregion //} } else { //针对仅有第一次试用时间,无注册码的情况 //_FirstUsedTime = Convert.ToDateTime(tmp); //第一次使用时间 _FirstUsedTime = Convert.ToDateTime(arytmp[0]); //最后一次使用时间 _LastUsedTime = Convert.ToDateTime(arytmp[1]); } } catch (Exception) { //如果注册表有键无值或者无法被正常处理,说明注册信息被破坏,直接将_FirstUsedTime改为随机年,造成使用年份变化,要求重新注册 Random r = new Random(); int i = r.Next(2, 9); _FirstUsedTime = DateTime.Now.AddDays(-nRegDay * i); _LastUsedTime = DateTime.Now; _SerialNo = String.Empty; } } else { //如果没有键但存在检索历史记录文件,说明删除过注册表信息,需要重新注册 string shFile = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "SearchHistory.txt"); if (false && File.Exists(shFile)) { //将第一次使用时间置为检索记录文件创建时间,最后一次使用时间置为检索记录文件最后访问时间 FileInfo fi = new FileInfo(shFile); _FirstUsedTime = fi.CreationTime; _LastUsedTime = fi.LastAccessTime; _SerialNo = String.Empty; } //否则就是第一次使用 else { _FirstUsedTime = DateTime.Now; _LastUsedTime = DateTime.Now; _SerialNo = String.Empty; } } //使用年份 _UsedYear = ((int)(_LastUsedTime - _FirstUsedTime).TotalDays) / nRegDay + 1; //读取网卡Mac地址并加上使用年份 _DiskNumber = _UsedYear + RegUtility.GetCpuNumber(); //string strTmpYY = ((char)((Convert.ToInt32(_Cyear, 10) - 2001) + 'A')).ToString(); _DiskNumber_2014 = _DiskNumber; // strCC + strTmpYY + _DiskNumber; }
private void radCpu_CheckedChanged(object sender, EventArgs e) { txbJqh.Text = RegUtility.GetCpuNumber(); txbYzm.Text = RegUtility.GetRegNumber(txbJqh.Text); }