BYTE j=i; if(j==0)//0代表软件已经注册,可以正常使用 { RegCloseKey(hKey); return true; } else { RegCloseKey(hKey); return false; }
return false; }; //设置软件已经注册标志的函数
BOOL SetRegFlag(void) { HKEY hKey = NULL; BYTE i;
CString str; str.LoadString(IDS_REG_KEY);// IDS_REG_KEY为在注册表中的子目录字符串
if (RegCreateKey(HKEY_CURRENT_USER, str, &hKey) != ERROR_SUCCESS) return false;
BYTE j=0;//0代表已经注册 if(RegSetValueEx(hKey, "SzMima", 0, REG_BINARY, &j,4) != ERROR_SUCCESS) { AfxMessageBox("设置注册表数据失败!"); return FALSE; } return false; }; 以上三个函数即可实现软件注册机制,只需要在程序初始化的时候加入以下几句代码即可 BOOL bReg= GetRegFlag (); if(!bReg) { //在此加入限制功能或者拒绝是使用的代码 } 如果用户注册只需要加入以下代码即可 //这是我的程序中的一个注册界面,输入用户名和注册码提交后检验注册码是否正确的代码 void CRegEdit::OnBnClickedOk() { if(!UpdateData()) return;//取得编辑框的内容,并赋值到类变量中
m_RegUser.TrimLeft();//m_RegUser是用户名 m_RegUser.TrimRight(); if(m_RegUser.IsEmpty()) { AfxMessageBox("用户名不能为空,请重新输入。"); GetDlgItem(IDC_REGUSER)->SetFocus(); return; } m_RegPasswd.TrimLeft();m_RegPasswd是注册码 m_RegPasswd.TrimRight(); if(m_RegPasswd.IsEmpty()) { AfxMessageBox("注册码不能为空,请重新输入。"); GetDlgItem(IDC_REGPASSWD)->SetFocus(); return; } CString Passwd; Passwd=GetRegPasswd(m_RegUser);//调用算法取得该用户名的注册码 if(Passwd==m_RegPasswd)//与用户输入的注册进行比较 { SetRegFlag();//设置注册标志 OnOK(); } else AfxMessageBox("注册码错误,请重新输入。"); UpdateData(false); }
以上就是在VC中实现注册机制的主要的代码,把他们加入您的程序即可。程序代码已在VC6.0/WIN98/WIN 2000环境中运行通过,并在实际运用中得到验证。对已经注册的用户将不会有任何的障碍,只需录入注册码一次就可以,不增加其日常使用的负担;而对非法用户的使用而言,取决于软件的作者赋予他们的权利。 
说明:本教程来源互联网或网友上传或出版商,仅为学习研究或媒体推广,wanshiok.com不保证资料的完整性。
2/2 首页 上一页 1 2 |