软件学习记录(9)软件授权管理功能

软件学习记录(9)软件授权管理功能

功能如下:

  1. 试用10min
  2. 如果未激活,软件会在10min后退出
  3. 状态栏中会有是否激活的提示
  4. 授权激活

功能原理:在注册表中添加键与值(这里的数值传入参数与当前使用电脑的硬件参数相关,基本无法伪造)

首先在 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("授权成功,重启生效!", "软件授权");
        }
posted @ 2023-03-15 17:34  聆听微风  阅读(178)  评论(0编辑  收藏  举报