VC:注册表与软件保护(CRegKey)

1、初始化函数中:

       CRegKey reg,reg2;

       DWORD dValue;

       CString str;

       extern BOOL flag;

       LPCTSTR lp="Software\\num\\";

              if(reg.Open(HKEY_CURRENT_USER,lp)==ERROR_SUCCESS && reg.QueryValue(dValue,"sum")==ERROR_SUCCESS)//打开注册表

              {

                     ;

              }

              else

              {

                     reg.Create(HKEY_CURRENT_USER,"Software");

                     reg.Create(reg.m_hKey,"num");

                     reg.SetValue(10,"sum");

              }

              if(reg2.Open(HKEY_CURRENT_USER,lp)==ERROR_SUCCESS)

              {

                     if(reg2.QueryValue(dValue,"sum")==ERROR_SUCCESS)

                     {

                            str.Format("此软件限制使用次数为10次,剩余次数为:%d",dValue);

                            SetDlgItemText(IDC_STATIC,str);

                            reg.SetValue(dValue-1,"sum");

                    

                            if(dValue>10)

                            {

                                   flag=false;

                            }

                            else

                            {

                                   flag=true;

                            }

                     }

                     else

                     {

                            SetDlgItemText(IDC_STATIC,"注册表查询错误!");

                     }

              }

              else

              {

                     SetDlgItemText(IDC_STATIC,"注册表打开错误!");

              }

                     reg.Close();

       reg2.Close();

       //本程序能否使用

       if(!flag)

       {

              AfxMessageBox("使用次数到限");

              CDialog::OnOK();

       }

      

原文地址:https://www.cnblogs.com/shenchao/p/2726833.html