diff --git a/CNAS_DBSync/ActivationForm.cs b/CNAS_DBSync/ActivationForm.cs index 27aaf50..d585811 100644 --- a/CNAS_DBSync/ActivationForm.cs +++ b/CNAS_DBSync/ActivationForm.cs @@ -5,11 +5,14 @@ using System.Management; using System.Net.NetworkInformation; using System.Collections.Generic; using System.IO; +using System.Configuration; namespace CNAS_DBSync { public partial class ActivationForm : Form { + private const string ACTIVATION_FILE = "activation.config"; + public bool IsActivated { get; private set; } public ActivationForm() @@ -18,6 +21,39 @@ namespace CNAS_DBSync IsActivated = false; } + // 检查是否已激活 + public bool CheckActivation() + { + try + { + string activationPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, ACTIVATION_FILE); + if (File.Exists(activationPath)) + { + string machineCode = GetMachineCode(); + string savedMachineCode = File.ReadAllText(activationPath); + return machineCode == savedMachineCode; + } + } + catch + { + // 如果读取失败,返回未激活状态 + } + return false; + } + + private void SaveActivation() + { + try + { + string activationPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, ACTIVATION_FILE); + File.WriteAllText(activationPath, GetMachineCode()); + } + catch (Exception ex) + { + MessageBox.Show($"保存激活状态失败:{ex.Message}", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning); + } + } + private void btnActivate_Click(object sender, EventArgs e) { string activationCode = txtActivationCode.Text.Trim(); @@ -32,6 +68,7 @@ namespace CNAS_DBSync if (ValidateActivationCode(activationCode)) { IsActivated = true; + SaveActivation(); // 保存激活状态 this.DialogResult = DialogResult.OK; this.Close(); } diff --git a/CNAS_DBSync/Program.cs b/CNAS_DBSync/Program.cs index 28717bf..a879b82 100644 --- a/CNAS_DBSync/Program.cs +++ b/CNAS_DBSync/Program.cs @@ -23,17 +23,25 @@ namespace CNAS_DBSync /*CheckAvailability(ref strMsg);*/ if (strMsg == "") { - // 显示激活窗口 - using (var activationForm = new ActivationForm()) + // 检查是否已激活 + if (! (new ActivationForm()).CheckActivation()) { - if (activationForm.ShowDialog() == DialogResult.OK) + // 未激活,显示激活窗口 + using (var activationForm = new ActivationForm()) { - // 激活成功,显示主窗口 - if (new frmOperationPwd().ShowDialog() == DialogResult.OK) - Application.Run(new frmSyncParams()); + if (activationForm.ShowDialog() == DialogResult.OK) + { + // 激活成功,显示主窗口 + if (new frmOperationPwd().ShowDialog() == DialogResult.OK) + Application.Run(new frmSyncParams()); + } } - //else - // MessageBox.Show("激活失败"); + } + else + { + // 已激活,直接显示主窗口 + if (new frmOperationPwd().ShowDialog() == DialogResult.OK) + Application.Run(new frmSyncParams()); } } else diff --git a/dll/CNAS_DBSync.exe b/dll/CNAS_DBSync.exe index a49102e..8b3a4f9 100644 Binary files a/dll/CNAS_DBSync.exe and b/dll/CNAS_DBSync.exe differ diff --git a/dll/activation.config b/dll/activation.config new file mode 100644 index 0000000..9ee4c79 --- /dev/null +++ b/dll/activation.config @@ -0,0 +1 @@ +BFEBFBFF000B06A2_7413EA0CEB72_7613EA0CEB71_7413EA0CEB71_7413EA0CEB75 \ No newline at end of file