国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

如何用VC實(shí)現(xiàn)軟件注冊(cè)

2019-11-17 05:06:38
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
要實(shí)現(xiàn)軟件注冊(cè)功能,首先需要知道實(shí)現(xiàn)注冊(cè)機(jī)制要涉及到的幾個(gè)問(wèn)題:1、如何加入注冊(cè)檢測(cè),判定軟件是否注冊(cè);2、如何生成注冊(cè)碼,如何保證一個(gè)用戶名只生成與之唯一對(duì)應(yīng)的注冊(cè)碼;3、在軟件不注冊(cè)情況下,如何限制軟件功能的局限性;4、對(duì)已經(jīng)負(fù)費(fèi)使用用戶而言,不應(yīng)造成使用不便。

  首先,應(yīng)該有一個(gè)生成注冊(cè)碼的算法,以下是我簡(jiǎn)單的一個(gè)生成15位注冊(cè)碼的算法:


  //該函數(shù)返回一個(gè)CSTRING類型的15位注冊(cè)碼,入口參數(shù)為用戶名

  CString GetRegPasswd(CString &DirName)

  //將用戶名換算成15位注冊(cè)碼

  long Num1,Num2,Num3;

  char sn16=0;

  CString p;

  int i,len;

  Num1=0;

  Num2=0;

  Num3=0;

  len=int(strlen(DirName));

  for( i=1;i<=len;i++)

  //第一步算法

  Num1=(long(Num1+(int(DirNamei-1)*i*i)*(i*sqrt(DirNamei-1)+1)))%100000;

  //第二步算法

  Num2=(Num2*i+(long(pow((int)DirNamei-1,2)*i)))%100000;

  //第三步算法

  Num3=(Num2+(long)sqrt(Num1))%100000;

  //以下把三個(gè)算法結(jié)果分別生成5個(gè)字符,共有15個(gè)

  for(i=0;i<5;i++)

  sni=(int)(Num1+31+i*i*i)%128;

  for(i=5;i<10;i++)

  sni=(int)(Num2+31+i*i*i)%128;

  for(i=10;i<15;i++)

  sni=(int)(Num3+31+i*i*i)%128;

  sn15=0;

  //以下循環(huán)把所有生成的字符轉(zhuǎn)換為09,AZ,az

  for(i=0;i<15;i++)

  while((sni<0sni>9) &&(sniZ)&&(sniz) )

  sni=(sni+31+7*i)%128;

  //賦值給一個(gè)CSTRING變量,用做函數(shù)返回值

  p.Format(%s,sn);

  return p;

  //檢查軟件是否注冊(cè)的函數(shù):
 
  BOOL GetRegFlag(void)

  HKEY hKey = NULL;

  BYTE i;

  CString str;

  str.LoadString(IDS_REG_KEY);// IDS_REG_KEY為在注冊(cè)表中的子目錄字符串

  if (RegCreateKey(HKEY_CURRENT_USER, str, &hKey)!=ERROR_SUCCESS) return false;

  DWord cbA;

  cbA=sizeof(int);

  return false;

  BYTE j=i;

  RegCloseKey(hKey);

  return true;

  else

  RegCloseKey(hKey);

  return false;

  return false;

  ;

  //設(shè)置軟件已經(jīng)注冊(cè)標(biāo)志的函數(shù)

  BOOL SetRegFlag(void)

  HKEY hKey = NULL;

  BYTE i;

  CString str;

  str.LoadString(IDS_REG_KEY);// IDS_REG_KEY為在注冊(cè)表中的子目錄字符串

  if (RegCreateKey(HKEY_CURRENT_USER, str, &hKey)!=ERROR_SUCCESS) return false;

  BYTE j=0;//0代表已經(jīng)注冊(cè)

  AfxMessageBox(設(shè)置注冊(cè)表數(shù)據(jù)失敗!);

  return FALSE;

  return false;

  ;

  以上三個(gè)函數(shù)即可實(shí)現(xiàn)軟件注冊(cè)機(jī)制,只需要在程序初始化的時(shí)候加入以下幾句代碼即可


  BOOL bReg= GetRegFlag ();

  //在此加入限制功能或者拒絕是使用的代碼

  假如用戶注冊(cè)只需要加入以下代碼即可

  //這是我的程序中的一個(gè)注冊(cè)界面,輸入用戶名和注冊(cè)碼提交后檢驗(yàn)注冊(cè)碼是否正確的代碼

  void CRegEdit::OnBnClickedOk()

  m_RegUser.Trimcenter();//m_RegUser是用戶名

  m_RegUser.Trimcenter();

  AfxMessageBox(用戶名不能為空,請(qǐng)重新輸入。);

  GetDlgItem(IDC_REGUSER)->SetFocus();

  return;

  m_RegPasswd.Trimcenter();m_RegPasswd是注冊(cè)碼

  m_RegPasswd.Trimcenter();

  AfxMessageBox(注冊(cè)碼不能為空,請(qǐng)重新輸入。);

  GetDlgItem(IDC_REGPASSWD)->SetFocus();

  return;

  CString Passwd;

  Passwd=GetRegPasswd(m_RegUser);//調(diào)用算法取得該用戶名的注冊(cè)碼

  SetRegFlag();//設(shè)置注冊(cè)標(biāo)志

  OnOK();

  else

  AfxMessageBox(注冊(cè)碼錯(cuò)誤,請(qǐng)重新輸入。);

  UpdateData(false);
 
  作者:程序員之家 更多文章 更多內(nèi)容請(qǐng)看常用軟件加密寶典  軟件插件  殺毒軟件專欄專題,或

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 甘德县| 称多县| 韶山市| 新津县| 凉山| 辽阳县| 陈巴尔虎旗| 仪征市| 咸阳市| 阳信县| 唐海县| 海林市| 崇左市| 延长县| 揭东县| 磐安县| 邵东县| 汪清县| 鞍山市| 呼和浩特市| 东方市| 仪陇县| 洱源县| 墨竹工卡县| 绵阳市| 宣城市| 宽城| 绥德县| 寿阳县| 东平县| 尖扎县| 丹阳市| 新余市| 江油市| 汉源县| 封丘县| 萍乡市| 西城区| 仲巴县| 衡南县| 兰坪|