現在網上下載的軟件大部分都需要注冊後才能使用其全部的功能
要實現軟件注冊功能
首先
//該函數返回一個CSTRING類型的
CString GetRegPasswd(CString &DirName)
{
//將用戶名換算成
long Num
char sn[
CString p;
int i
Num
Num
Num
len=int(strlen(DirName));
if(len!=
{
for( i=
{
//第一步算法
Num
//第二步算法
Num
//第三步算法
Num
}
//以下把三個算法結果分別生成
for(i=
sn[i]=(int)(Num
for(i=
sn[i]=(int)(Num
for(i=
sn[i]=(int)(Num
sn[
//以下循環把所有生成的字符轉換為
for(i=
{
while((sn[i]<@#
{
sn[i]=(sn[i]+
}
}
//賦值給一個CSTRING變量
p
}
return p;
}
//檢查軟件是否注冊的函數
BOOL GetRegFlag(void)
{
HKEY hKey = NULL;
BYTE i;
CString str;
str
if (RegCreateKey(HKEY_CURRENT_USER
DWORD cbA;
cbA=sizeof(int);
if( RegQueryValueEx(hKey
return false;
BYTE j=i;
if(j==
{
RegCloseKey(hKey);
return true;
}
else
{
RegCloseKey(hKey);
return false;
}
return false;
};
//設置軟件已經注冊標志的函數
BOOL SetRegFlag(void)
{
HKEY hKey = NULL;
BYTE i;
CString str;
str
if (RegCreateKey(HKEY_CURRENT_USER
BYTE j=
if(RegSetValueEx(hKey
{
AfxMessageBox(
return FALSE;
}
return false;
};
以上三個函數即可實現軟件注冊機制
BOOL bReg= GetRegFlag ();
if(!bReg)
{
//在此加入限制功能或者拒絕是使用的代碼
}
如果用戶注冊只需要加入以下代碼即可
//這是我的程序中的一個注冊界面
void CRegEdit::OnBnClickedOk()
{
if(!UpdateData()) return;//取得編輯框的內容
m_RegUser
m_RegUser
if(m_RegUser
{
AfxMessageBox(
GetDlgItem(IDC_REGUSER)
return;
}
m_RegPasswd
m_RegPasswd
if(m_RegPasswd
{
AfxMessageBox(
GetDlgItem(IDC_REGPASSWD)
return;
}
CString Passwd;
Passwd=GetRegPasswd(m_RegUser);//調用算法取得該用戶名的注冊碼
if(Passwd==m_RegPasswd)//與用戶輸入的注冊進行比較
{
SetRegFlag();//設置注冊標志
OnOK();
}
else
AfxMessageBox(
UpdateData(false);
}
以上就是在VC中實現注冊機制的主要的代碼
From:http://tw.wingwit.com/Article/program/net/201311/12139.html