HKEY key;
CString sKeyPath;
sKeyPath="Software//SoftTryTimeTest";
if(RegOpenKey(HKEY_CURRENT_USER,sKeyPath,&key)!=0
&& RegOpenKey(HKEY_CURRENT_USER,sKeyPath,&key)!=ERROR_SUCCESS
) //首次使用
{
//在注册表中记录已使用的次数
::RegCreateKey (HKEY_CURRENT_USER,sKeyPath,&key);
::RegSetValueEx (key,"Try time",0,REG_SZ,(unsigned char *)"5",2);
::RegCloseKey (key);
MessageBox("你只能使用5次","系统提示",MB_OK|MB_ICONEXCLAMATION);
}
else //已经存在注册表信息
{
CString sTryTime;
int nTryTime;
LPBYTE Data=new BYTE[80];
DWORD TYPE=REG_SZ;
DWORD cbData=80;
//取出已经使用次数
::RegQueryValueEx (key,"Try time",0,&TYPE,Data,&cbData);
sTryTime.Format ("%s",Data);
nTryTime=atoi(sTryTime);
if(nTryTime <1)
{
MessageBox("最大试用次数已过","系统提示",MB_OK|MB_ICONSTOP);
return false;
}
nTryTime--;
sTryTime.Format ("%d",nTryTime);
::RegSetValueEx (key,"Try time"
,0,REG_SZ
,(unsigned char *)sTryTime.GetBuffer (sTryTime.GetLength ())
,2);
::RegCloseKey (key);
MessageBox("你还可以试用"+sTryTime+"次!","系统提示",MB_OK|MB_ICONEXCLAMATION);
}