注册表

注册表
利用Win32API函数操作注册表:

MFC对话框工程:SoftReg,将应用软件的使用次数写入注册表。
在OnInitDialog函数中添加:
/**/ /************************************************************************/
    
/**/ /* RegOpenKey(HKEY hKey,LPCTSRT lpSubKey,PHKEY phkResult)
        打开注册表中指定的项或子项,hKey:根键,lpSubKey:将要打开的子项名称,
        phkResult:返回打开的子项。如果成功,返回ERROR_SUCCESS
    
*/

    
/**/ /************************************************************************/
    HKEY Key;    
    CString sKeyPath;
    sKeyPath 
=   " Software\\jerry " ;
    
if  (RegOpenKey(HKEY_CURRENT_USER,sKeyPath, & Key) != 0
        
&&  RegOpenKey(HKEY_CURRENT_USER,sKeyPath, & Key) != ERROR_SUCCESS)
    
{
        ::RegCreateKey(HKEY_CURRENT_USER,sKeyPath,
&Key);
        ::RegSetValueEx(Key,
"TryTime",0,REG_SZ,(unsigned char*)"5",2);
        ::RegCloseKey(Key);
        MessageBox(
"You can try this 5 times!","tip",MB_OK|MB_ICONEXCLAMATION);
    }
 
    
else
    
{
        CString sKeyTime;
        
int nTryTime;
        LPBYTE Data
=new BYTE[80];
        DWORD TYPE
=REG_SZ;
        DWORD cbData
=80;
        ::RegQueryValueEx(Key,
"TryTime",0,&TYPE,Data,&cbData);
        sKeyTime.Format(
"%s",Data);
        nTryTime
=atoi(sKeyTime);
        
if (nTryTime <= 1)
        
{
            MessageBox(
"Please regist!","tip",MB_OK|MB_ICONSTOP);
            
return FALSE;
        }

        nTryTime
--;
        sKeyTime.Format(
"%d",nTryTime);
        ::RegSetValueEx(Key,
"TryTime",0,REG_SZ,(unsigned char*)sKeyTime.GetBuffer(sKeyTime.GetLength()),2);
        ::RegCloseKey(Key);
        MessageBox(
"You can try this "+sKeyTime+" times!"," tip",MB_OK|MB_ICONEXCLAMATION);
    }

你可能感兴趣的:(注册表)