在某些时候,比如出试用版啦~~之类之类的啦~~其实主要是试用版喽,限制用户的使用次数。
我们一般通过往注册表写一些标识值的方法来完成这个目的~
以下为实现的代码:
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的,也容易被破解。在一些不怎么重要的试用版上用用还可以啦。~~~