知识大全 在VC中怎样实现软件的注册机制

Posted 软件

篇首语:拼一个春夏秋冬,愿一生无怨无悔。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 在VC中怎样实现软件的注册机制相关的知识,希望对你有一定的参考价值。

在VC中怎样实现软件的注册机制  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  现在网上下载的软件大部分都需要注册后才能使用其全部的功能 也就是说当前大部分软件都是建立了注册机制的 对于一个刚进入软件行业的程序员来说一定非常想了解其中的注册机制是怎样实现的 其实用VC开发软件 是可以很方便地加入注册机制的      要实现软件注册功能 首先需要知道实现注册机制要涉及到的几个问题 如何加入注册检测 判断软件是否注册 如何生成注册码 如何保证一个用户名只生成与之唯一对应的注册码 在软件不注册情况下 如何限制软件功能的局限性 对已经负费使用用户而言 不应造成使用不便      首先 应该有一个生成注册码的算法 以下是我简单的一个生成 为注册码的算法 //该函数返回一个CSTRING类型的 位注册码 入口参数为用户名 CString GetRegPasswd(CString &DirName)  //将用户名换算成 位注册码 long Num Num Num ; char sn[ ]= ; CString p; int i len; Num = ;  Num = ; Num = ; len=int(strlen(DirName)); if(len!= ) for( i= ;i<=len;i++) //第一步算法 Num =(long(Num +(int(DirName[i ])*i*i)*(i*sqrt(DirName[i ])+ )))% ; //第二步算法 Num =(Num *i+(long(pow((int)DirName[i ] )*i)))% ; //第三步算法 Num =(Num +(long)sqrt(Num ))% ; //以下把三个算法结果分别生成 个字符 共有 个 for(i= ;i< ;i++) sn[i]=(int)(Num + +i*i*i)% ; for(i= ;i< ;i++) sn[i]=(int)(Num + +i*i*i)% ; for(i= ;i< ;i++) sn[i]=(int)(Num + +i*i*i)% ; sn[ ]= ; //以下循环把所有生成的字符转换为 A Z a z for(i= ;i< ;i++) while((sn[i]<@# @# || sn[i]>@# @#) && (sn[i]<@#A@# || sn[i]>@#Z@#) &&(sn[i]<@#a@# || sn[i]>@#z@#) ) sn[i]=(sn[i]+ + *i)% ;

  //赋值给一个CSTRING变量 用做函数返回值 p Format( %s sn); return p;   //检查软件是否注册的函数 BOOL GetRegFlag(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; DWORD cbA; cbA=sizeof(int); if( RegQueryValueEx(hKey SzMima NULL NULL &i &cbA) != ERROR_SUCCESS) 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 LoadString(IDS_REG_KEY);// IDS_REG_KEY为在注册表中的子目录字符串 if (RegCreateKey(HKEY_CURRENT_USER str &hKey) != ERROR_SUCCESS) return false; BYTE j= ;// 代表已经注册 if(RegSetValueEx(hKey SzMima REG_BINARY &j ) != ERROR_SUCCESS) AfxMessageBox( 设置注册表数据失败! ); return FALSE; return false; ; 以上三个函数即可实现软件注册机制 只需要在程序初始化的时候加入以下几句代码即可 BOOL bReg= GetRegFlag (); if(!bReg) //在此加入限制功能或者拒绝是使用的代码 如果用户注册只需要加入以下代码即可 //这是我的程序中的一个注册界面 输入用户名和注册码提交后检验注册码是否正确的代码 void CRegEdit::OnBnClickedOk()

cha138/Article/program/net/201311/12139

相关参考

知识大全 新注册一个公司怎样报税和记账

新注册一个公司怎样报税和记账一、建账二、申购发票三、报税报税前税务局会安排培训,公司购买ca证书、申报软件,和银行签订网络报税、扣款三方协议,准备工作做好后,报税流程如下:(一)国税流程:涉及所得税、

注册会计师行业监管中,( )作为行业组织,要建立健全政策协调和工作协同机制,推动各项政策措施的落实。

会计改革与发展十四五规划题目:注册会计师行业监管中,()作为行业组织,要建立健全政策协调和工作协同机制,推动各项政策措施的落实。A、财政部门B、会计师事务所C、证监会D、注册会计师协会参考答案:D

知识大全 为什么我在用友的系统管理建立了账套,但在会计电算化通用教学软件注册控制台却无法选择账套和会计年度

为什么我在用友的系统管理建立了账套,但在会计电算化通用教学软件注册控制台却无法选择账套和会计年度先增加用户及为用户设置口令,再新建账套,在建立新账套的过程中,选择账套主管。账套建立成功后,再根据需要为

知识大全 开发手记:共享软件注册程序编写实例(2)

  OptionExplicit    PrivateDeclareFunctionGetVolumeInformationLibkernel_    AliasGetVolumeInformatio

知识大全 如何在VC中改变控件的背景色

如何在VC中改变控件的背景色  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在VC编程中要改变控

知识大全 怎么下载c语言学习软件能在windows7家庭普通版32位操作系统运行

怎么下载c语言学习软件能在windows7家庭普通版32位操作系统运行??这要看你以前使用的是什么软件,vc6.0可以再win7下面运行,但是会出现兼容提示,而且vc6.0不是很好,建议使用visua

在政府补偿机制中,怎样正确理解医疗保险基金付费和个人付费补偿?

实施基本药物制度后,城镇职工基本医疗保险基金、城镇居民基本医疗保险基金、新型农村合作医疗基金付费和个人付费,是基层医疗机构提供基本医疗服务所需经费的重要补偿渠道,基层医疗机构将按照政策规定及时足额收取

知识大全 在VC中使用ADO[1]

网络游戏服务器端编程:在VC中使用ADO[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nb

知识大全 在VC中使用ADO[2]

网络游戏服务器端编程:在VC中使用ADO[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&nb

知识大全 在VC++应用程序中读取文本数据

在VC++应用程序中读取文本数据  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  我们通常把数据存