初始化版本
This commit is contained in:
175
SLC1-N/ActivationManager.cs
Normal file
175
SLC1-N/ActivationManager.cs
Normal file
@@ -0,0 +1,175 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
|
||||
namespace SLC1_N
|
||||
{
|
||||
public static class ActivationManager
|
||||
{
|
||||
private static readonly string ActivationFilePath;
|
||||
|
||||
static ActivationManager()
|
||||
{
|
||||
// 设置激活文件路径
|
||||
string userFolder = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
|
||||
ActivationFilePath = Path.Combine(userFolder, "AppData", "Local", "mxlSoftware", "activation.bin");
|
||||
|
||||
// 确保目录存在
|
||||
Directory.CreateDirectory(Path.GetDirectoryName(ActivationFilePath));
|
||||
}
|
||||
|
||||
// 写入激活状态和到期时间
|
||||
public static void WriteActivationStatus(bool isActivated, DateTime expiryTime)
|
||||
{
|
||||
try
|
||||
{
|
||||
string content = $"{isActivated}|{expiryTime:yyyy-MM-dd HH:mm:ss}";
|
||||
File.WriteAllText(ActivationFilePath, content);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
// 写入激活状态并设置有效期
|
||||
public static void WriteActivationStatus(bool isActivated, int validDays)
|
||||
{
|
||||
DateTime expiryTime = isActivated ? DateTime.Now.AddDays(validDays) : DateTime.MinValue;
|
||||
WriteActivationStatus(isActivated, expiryTime);
|
||||
}
|
||||
|
||||
// 只写入激活状态
|
||||
public static void WriteActivationStatus(bool isActivated)
|
||||
{
|
||||
DateTime expiryTime = isActivated ? DateTime.MaxValue : DateTime.MinValue;
|
||||
WriteActivationStatus(isActivated, expiryTime);
|
||||
}
|
||||
|
||||
// 读取激活状态和到期时间
|
||||
public static (bool IsActivated, DateTime ExpiryTime) ReadActivationStatus()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (!File.Exists(ActivationFilePath))
|
||||
{
|
||||
return (false, DateTime.MinValue);
|
||||
}
|
||||
|
||||
string content = File.ReadAllText(ActivationFilePath);
|
||||
|
||||
if (!content.Contains('|'))
|
||||
{
|
||||
bool status = bool.Parse(content);
|
||||
DateTime etime = status ? DateTime.MaxValue : DateTime.MinValue;
|
||||
return (status, etime);
|
||||
}
|
||||
|
||||
string[] parts = content.Split('|');
|
||||
bool isActivated = bool.Parse(parts[0]);
|
||||
DateTime expiryTime = DateTime.ParseExact(parts[1], "yyyy-MM-dd HH:mm:ss", null);
|
||||
|
||||
return (isActivated, expiryTime);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
return (false, DateTime.MinValue);
|
||||
}
|
||||
}
|
||||
|
||||
// 只读取激活状态
|
||||
public static bool ReadActivationStatusSimple()
|
||||
{
|
||||
var (isActivated, _) = ReadActivationStatus();
|
||||
return isActivated;
|
||||
}
|
||||
|
||||
// 检查激活是否过期
|
||||
public static bool CheckActivationExpiry()
|
||||
{
|
||||
var (isActivated, expiryTime) = ReadActivationStatus();
|
||||
|
||||
if (!isActivated)
|
||||
return false;
|
||||
|
||||
// 检查是否过期
|
||||
return DateTime.Now >= expiryTime;
|
||||
}
|
||||
|
||||
// 获取剩余时间
|
||||
public static TimeSpan GetRemainingTime()
|
||||
{
|
||||
var (isActivated, expiryTime) = ReadActivationStatus();
|
||||
|
||||
if (!isActivated || DateTime.Now > expiryTime)
|
||||
return TimeSpan.Zero;
|
||||
|
||||
return expiryTime - DateTime.Now;
|
||||
}
|
||||
|
||||
// 获取剩余天数
|
||||
public static double GetRemainingDays()
|
||||
{
|
||||
TimeSpan remaining = GetRemainingTime();
|
||||
return remaining.TotalDays;
|
||||
}
|
||||
|
||||
// 获取剩余小时数
|
||||
public static double GetRemainingHours()
|
||||
{
|
||||
TimeSpan remaining = GetRemainingTime();
|
||||
return remaining.TotalHours;
|
||||
}
|
||||
|
||||
// 判断是否是永久激活
|
||||
public static bool IsPermanentActivation()
|
||||
{
|
||||
var (isActivated, expiryTime) = ReadActivationStatus();
|
||||
return isActivated && expiryTime == DateTime.MaxValue;
|
||||
}
|
||||
|
||||
// 重置激活状态(删除文件)
|
||||
public static void ResetActivation()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (File.Exists(ActivationFilePath))
|
||||
{
|
||||
File.Delete(ActivationFilePath);
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
MessageBox.Show($"重置激活状态失败: {ex.Message}");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
*
|
||||
// 写入激活状态和具体到期时间
|
||||
ActivationManager.WriteActivationStatus(true, new DateTime(2024, 12, 31));
|
||||
|
||||
// 写入激活状态并设置30天有效期
|
||||
ActivationManager.WriteActivationStatus(true, 30);
|
||||
|
||||
// 写入永久激活
|
||||
ActivationManager.WriteActivationStatus(true);
|
||||
|
||||
// 读取激活状态和到期时间
|
||||
var (isActivated, expiryTime) = ActivationManager.ReadActivationStatus();
|
||||
|
||||
// 检查是否过期
|
||||
bool isValid = ActivationManager.CheckActivationExpiry();
|
||||
|
||||
// 获取剩余天数
|
||||
double remainingDays = ActivationManager.GetRemainingDays();
|
||||
|
||||
// 检查是否是永久激活
|
||||
bool isPermanent = ActivationManager.IsPermanentActivation();
|
||||
*/
|
||||
Reference in New Issue
Block a user