Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1334649
  • 博文数量: 953
  • 博客积分: 52320
  • 博客等级: 大将
  • 技术积分: 13090
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-05 13:42
文章分类

全部博文(953)

文章存档

2011年(1)

2008年(952)

我的朋友

分类: C/C++

2008-08-05 13:53:56

下载本文示例代码
下载示例源代码

现在有很多软件都推出了试用版,其中就有一些是限定软件的使用次数的,我用MFC也写了一个类似的程序。其实很简单,只要在程序初始化时(InitInstance()函数中),加上以下几句:
unsigned char buffer[255]={0};

unsigned long length;

unsigned long type;

HKEY hKey;



RegOpenKey(HKEY_LOCAL_MACHINE,"Software\\dm",&hKey);

RegQueryValueEx(hKey,"Num",NULL,&type,buffer,&length);

RegCloseKey(hKey);



int Count;

Count = atoi((const char*)buffer);

if(Count == 0)

{

	RegCreateKey(HKEY_LOCAL_MACHINE,"SOFTWARE\\dm",&hKey);

	RegSetValueEx(hKey,"Num",0,REG_SZ,(const unsigned char *)"5",strlen("5"));

	RegCloseKey(hKey);

	MessageBox(NULL,"最后用5次!","Hello",MB_OK);			

}

else if(Count == 1)

{

	MessageBox(NULL,"请注册!","Hello",MB_OK);

	return true;

}

else

{

	char buf[255]={0};

	Count -= 1;

	itoa(Count,buf,10);

	CString str;

	str.Format ("最后用%d次!",Count);

	MessageBox(NULL,str,"Hello",MB_OK);

	RegOpenKey(HKEY_LOCAL_MACHINE,"SOFTWARE\\dm",&hKey);

	RegSetValueEx(hKey,"Num",0,REG_SZ,(const unsigned char*)buf,strlen(buf));

	RegCloseKey(hKey);

}
这时它就具有了使用次数的限制。其中程序中的5是准备让用户使用的次数,它可被你任意修改。大家可以看出来,程序其实就是在读写注册表,利用这种思路也可以作成读写文件,甚至是加密狗。总之没什么高深的,祝各位编程快乐!(Win2k vc6.0下通过)

下载本文示例代码
阅读(39) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~