软件学习记录(9)软件授权管理功能
软件学习记录(9)软件授权管理功能
功能如下:
- 试用10min
- 如果未激活,软件会在10min后退出
- 状态栏中会有是否激活的提示
- 授权激活
功能原理:在注册表中添加键与值(这里的数值传入参数与当前使用电脑的硬件参数相关,基本无法伪造)
首先在 Program.cs
#region 授权配置
//判断是否有授权 第一种情况没有激活;第二种情况,实际上没有激活,伪造了激活码,没有通过检测
object reg = Regedit.GetData("Tingfeng", "Tingfeng");
if (reg == null)
{
MessageBox.Show("本软件尚未授权,提供10分钟试用时间!", "授权提示");
CommonMethods.IsLicence = false;
}
else
{
string Code = reg.ToString();
if (!Register.Check(Code))
{
MessageBox.Show("本软件尚未授权,提供10分钟试用时间!", "授权提示");
CommonMethods.IsLicence = false;
}
else
{
CommonMethods.IsLicence = true;
}
}
#endregion
在程序的主窗体界面启动定时器,当程序试用时间到以后会自动进行退出
public FrmMain()
{
InitializeComponent();
this.Load += FrmMain_Load;
myTimer.Interval = 500;
myTimer.Tick += MyTimer_Tick;
myTimer.Start();
}
private void MyTimer_Tick(object sender, EventArgs e)
{
this.tsl_CurrentTime.Text = CurrentTime;
//授权检测
if (CommonMethods.IsLicence == false)
{
if (DateTime.Now.Subtract(Convert.ToDateTime(SysStartTime)).TotalSeconds > 6000)
{
myTimer.Enabled = false;
MessageBox.Show("软件授权到期,即将关闭系统!", "授权提示");
IsExit = false;
this.Close();
}
}
}
授权激活代码:
private void btn_Licence_Click(object sender, EventArgs e)
{
try
{
Regedit.AddItem("Tingfeng", "Tingfeng", Register.Encrypt());
}
catch (Exception)
{
MessageBox.Show("授权失败!", "软件授权");
return;
}
MessageBox.Show("授权成功,重启生效!", "软件授权");
}