• 控制软件生命周期


       
       说明:添加引用Microsoft.win32,这主要是通过设置注册表来达到软件使用次数的控制。

       using Microsoft.win32; 
     
       private void Form1_Load(object sender, System.EventArgs e)
      {
       RegistryKey RootKey,RegKey; 

       //项名为:HKEY_CURRENT_USER\Software
       RootKey = Registry.CurrentUser.OpenSubKey ("Software",true);
       
       //打开子项:HKEY_CURRENT_USER\Software\MyRegDataApp
       if ((RegKey = RootKey.OpenSubKey ("MyRegDataApp",true)) == null)
       {
           RootKey.CreateSubKey("MyRegDataApp");//不存在,则创建子项
           RegKey = RootKey.OpenSubKey ("MyRegDataApp",true);
           RegKey.SetValue ("UseTime",(object)9); //创建键值,存储可使用次数
           MessageBox.Show ("您可以免费使用本软件10次!","感谢您首次使用");
           return;
       }

       try
       {
           object usetime = RegKey.GetValue ("UseTime");//读取键值,可使用次数
           MessageBox.Show ("你还可以使用本软件 :"+ usetime.ToString ()+ "次!","确认",MessageBoxButtons.OK ,MessageBoxIcon.Information );
           int newtime = Int32.Parse (usetime.ToString())-1;

           if (newtime<0)
           {
              if (MessageBox.Show ("继续使用,请购买本软件!","提示",MessageBoxButtons.OK ,MessageBoxIcon.Information )== DialogResult.OK )
              {
                 Application.Exit ();
              }
           }
           else
           {
              RegKey.SetValue ("UseTime",(object)newtime);//更新键值,可使用次数减1
           }
       }
       catch
       {
           RegKey.SetValue ("UseTime",(object)10); //创建键值,存储可使用次数
           MessageBox.Show ("您可以免费使用本软件10次!","感谢您首次使用");
           return;
       }   
      }

  • 相关阅读:
    《天才源自刻意练习》读书笔记
    IDEA报错,启动失败解决
    Go的定时器之Time.Ticker
    Windows设置硬盘类型
    windows端口转发
    SpringBoot 引入第三方 jar
    【Element】调整 elselect 高度之后 箭头错位问题解决
    AspNetCore&JWT认证授权
    我的微信公众号开通了
    Redis(二):redis持久化
  • 原文地址:https://www.cnblogs.com/winnxm/p/911079.html
Copyright © 2020-2023  润新知