public bool CheckFile(out double DaysLeft) { DaysLeft = 0; if (File.Exists(FilePath) && RegEditor.IsRegistryKeyExist(RGName)) { //MessageBox.Show("10"); using (var s = new FileStream(FilePath, FileMode.Open)) { var bf = new BinaryFormatter(); RegisterKeyModel ModelInFile = bf.Deserialize(s) as RegisterKeyModel; var ModelInReg = RegisterKeyModel.FromString(RegEditor.ReadRegisterValue()); //MessageBox.Show($"10\n{ModelInFile.ToString()}\n{ModelInReg.ToString()}"); if (ModelInFile == ModelInReg) { //MessageBox.Show("11"); //总时间-(读取Now-注册时间) if (!ModelInFile.IsTimeoutFromNow(out double DaysLeft1)) { //MessageBox.Show("12"); long ticks = long.Parse(RegEditor.ReadUsedTime()); //以下是防止客户篡改系统时间 if (TimeSpan.FromTicks(ticks).TotalDays <= TimeArr[(int)ModelInFile.TimeLimit]) { //MessageBox.Show("13"); //这个时间是剩余的使用时间 var DaysLeft2 = TimeArr[(int)ModelInFile.TimeLimit] - TimeSpan.FromTicks(ticks).TotalDays; DaysLeft = Math.Min(DaysLeft1, DaysLeft2); //按照最大的使用时间计算已经使用的Ticks TimeTicksUsed = TimeSpan.FromDays(TimeArr[(int)ModelInFile.TimeLimit] - DaysLeft).Ticks; RegEditor.WriteRemainTime(TimeTicksUsed.ToString()); return(true); } } } } } return(false); }
public CommonSoftware() { #if REG //TimeTicksUsed= TimeStart = DateTime.Now.Ticks; if (RegEditor.IsRegistryKeyExist(TUName)) { var strTimeUsed = RegEditor.ReadUsedTime(); if (long.TryParse(strTimeUsed, out long result)) { TimeTicksUsed = result; #if TEST MessageBox.Show(TimeTicksUsed.ToString()); #endif } } else { RegEditor.WriteRemainTime("0"); } #endif }