现在的位置: 首页 > 综合 > 正文

[原]限制软件的使用次数

2013年10月01日 ⁄ 综合 ⁄ 共 2166字 ⁄ 字号 评论关闭

在某些时候,比如出试用版啦~~之类之类的啦~~其实主要是试用版喽,限制用户的使用次数。

我们一般通过往注册表写一些标识值的方法来完成这个目的~

 

以下为实现的代码:

VC平台 MFC框架

   1:  unsigned char buffer[255]={0}; 
   2:  unsigned long length; 
   3:  unsigned long type; 
   4:  HKEY hKey; 
   5:   
   6:  RegOpenKey(HKEY_LOCAL_MACHINE, 
   7:      "Software//Classes//CLSID//{79AD74E9-1C65-408B-9880-E7937DB5AA93}", &hKey); 
   8:  RegQueryValueEx(hKey,"Num",NULL,&type,buffer,&length); 
   9:  RegCloseKey(hKey); 
  10:   
  11:  int Count; 
  12:  Count = atoi((const char*)buffer); 
  13:  if(Count == 0) 
  14:  { 
  15:      AfxMessageBox("本软件为试用版,只可使用5次"); 
  16:      RegCreateKey(HKEY_LOCAL_MACHINE, 
  17:          "Software//Classes//CLSID//{79AD74E9-1C65-408B-9880-E7937DB5AA93}",&hKey); 
  18:      RegSetValueEx(hKey,"Num",0,REG_SZ,(const unsigned char *)"5",strlen("5")); 
  19:      RegCloseKey(hKey); 
  20:  } 
  21:  else if(Count == 1) 
  22:  { 
  23:      AfxMessageBox("使用次数已满",MB_OK,1); 
  24:      exit(1); 
  25:  } 
  26:  else 
  27:  { 
  28:      char buf[255]={0}; 
  29:      Count -= 1; 
  30:      itoa(Count,buf,10); 
  31:      CString str; 
  32:      RegOpenKey(HKEY_LOCAL_MACHINE, 
  33:          "Software//Classes//CLSID//{79AD74E9-1C65-408B-9880-E7937DB5AA93}",&hKey); 
  34:      RegSetValueEx(hKey,"Num",0,REG_SZ,(const unsigned char*)buf,strlen(buf)); 
  35:      RegCloseKey(hKey); 
  36:  }    

 

以上~~~

但其实这个方法是很Easy的,也容易被破解。在一些不怎么重要的试用版上用用还可以啦。~~~

抱歉!评论已关闭.