C# 程序添加试用期限

方法1:在文件夹下写入固定日期,每次打开程序时读取这个日期并且和系统时间进行比较。

public bool CheckLicence()
        {
            string time= ReadTxt(TimeFile);
            DateTime Now = DateTime.Now;
            
            //Thread.Sleep(2000);
            //DateTime time = DateTime.Now;
            DateTime dt = DateTime.ParseExact(time, "yyyyMMddHHmmss", System.Globalization.CultureInfo.CurrentCulture);
            if (DateTime.Now > dt)
            {
                MessageBox.Show("软件使用时间过期,请联系厂商");
                
                return true;
            }
            else
            {
               // MessageBox.Show("未过期");

                return false;
            }
            
        }
        public static string ReadTxt(String filePath)
        {
            string strData = "";
            try
            {
                string line;
            //    // 创建一个 StreamReader 的实例来读取文件 ,using 语句也能关闭 StreamReader
                using (System.IO.StreamReader sr = new System.IO.StreamReader(filePath))
                {
            //        // 从文件读取并显示行,直到文件的末尾
                    while ((line = sr.ReadLine()) != null)
                    {
                        //Console.WriteLine(line);
                        strData = line;
                    }
                }
            //}
            catch (Exception e)
            {
            //    // 向用户显示出错消息
            //    //Console.WriteLine("The file could not be read:");
            //    //Console.WriteLine(e.Message);
            }
            return strData;
        }
        

方法二:写入到注册表中,程序第一次开启后,在注册表的目录下写入时间,之后每次程序运行系统时间会与设定时间进行比较。

 private void button1_Click(object sender, EventArgs e)
        {
            RegistryKey mainkey = Registry.LocalMachine;
            RegistryKey subkey = mainkey.OpenSubKey("SOFTWARE\\PosRegister\\time", true);
            if (subkey == null)
            {
                object usetime = System.DateTime.Now.AddDays(15).ToLongDateString();
                subkey = mainkey.CreateSubKey("SOFTWARE\\PosRegister\\time");
                subkey.SetValue("Position", usetime);
                MessageBox.Show("您可以免费试用软件15天!", "感谢您首次使用");
            }
            try
            {
                DateTime usetime = Convert.ToDateTime(subkey.GetValue("Position"));
                DateTime daytime = DateTime.Parse(System.DateTime.Now.ToLongDateString());
                TimeSpan ts = usetime - daytime;
                int day = ts.Days;
                if (day <= 0)
                {
                    if (MessageBox.Show("软件试用期已到,请注册后再使用!", "提示", MessageBoxButtons.OK) == DialogResult.OK)
                    {
                        Application.Exit();
                    }
                }
                //else 
                //{
                //    MessageBox.Show("本软件的试用期还有" + day.ToString() + "天!", "提示");
                //}
            }
            catch { }
            subkey.Close();
        }

在注册表的位置X86和X64写入的位置会不同,X86环境下注册表生成路径如下:计算机\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PosRegister\time。

你可能感兴趣的:(C#)