软件试用期及试用次数控制(附部分关键代码)!

  其实网上已经有不少现成的软件,它们可以帮你做到一些共享软件的时间控制,比如试用30天,试用100次等。前些天给台湾人写的软件现在需要要一个试用版,由于是繁体,想用网上已有的软件<<幻影加密系统>>来做,但在繁体下一运行就把机子搞死了,害得我新装了繁体2000。后来想想还是自己写算了。
  对方要求试用90天,150次。本来也想用时间同步的方法来实现(以前也都实现了),但考虑到一些问题,想想没有那些必要,反正这也不是什么重要的东西,也就好弃了。我的思路是这样的,在安装软件时,取得系统时间 ,加密(我采用DES),写入注册表,写入INI文件(两手准备,加强安全)。文件和注册表都写入相同的数据,如果它们不相同,那么软件就不能运行,写入项包括安装时间,使用次数以及使用时间等。软件运行时检查时间是否全法,文件和注册表都写入的数据是否相同,如果有问题就不让再使用,并且删除ini文件和注册表的部分数据(没有全部删除,以防止再次安装)。申明本方法并不是安全的,只是为了应付一般的要求而已,如果需要高安全性,请使用其它的方法。

下面的代码简单演示了各部分的处理过程:

一、安装时写入加密数据:

  (这里的加密使用了控件)

DES->GenerateKey("neowarton20030731");
    TDateTime *d=new TDateTime(Date());
    AnsiString times,date,filename;;
    char dir[256];

    times="0";
    date=DateTimeToStr(*d);

    times=DES->EncryptString(times);
    date=DES->EncryptString(date);
    //install=DES->EncryptString(date);
    AnsiString s=times+date;
    OutputDebugString(s.c_str());


    filename="//mysoft.ini";
    GetSystemDirectory(dir,sizeof(dir));
    filename=dir+filename;

    if(FileExists(filename))
    {
    Application->Terminate();   //if the ini file is alread exists exit;

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在C++中,你可以使用时间戳技术来限制软件试用期。以下是一个简单的示例代码: ```c++ #include <iostream> #include <ctime> using namespace std; int main() { time_t now = time(0); // 获取当前时间 tm *ltm = localtime(&now); // 转换为本地时间 // 设置试用期为30天 const int TRIAL_PERIOD = 30; // 设置试用期开始时间 tm trial_start = {0}; trial_start.tm_year = 2022 - 1900; // 年份减去1900 trial_start.tm_mon = 1; // 月份从0开始 trial_start.tm_mday = 1; // 将试用期开始时间转换为time_t类型 time_t trial_start_time = mktime(&trial_start); // 计算试用期剩余天数 int days_left = TRIAL_PERIOD - (difftime(now, trial_start_time) / 86400); // 输出试用期剩余天数 cout << "Trial period remaining: " << days_left << " days" << endl; return 0; } ``` 在上述代码中,我们使用了ctime头文件中的time和localtime函数来获取当前时间,并将其转换为本地时间。我们还定义了一个常量TRIAL_PERIOD来表示试用期的天数,并设置了试用期开始时间trial_start。我们使用mktime函数将试用期开始时间转换为time_t类型,并使用difftime函数计算试用期剩余天数。最后,我们输出试用期剩余天数。 当用户安装软件时,我们可以将当前时间记录下来,并保存到配置文件中。每次用户启动软件时,我们都可以读取配置文件中的时间戳,并使用上述代码计算试用期剩余天数。如果试用期已过,则可以显示提示信息,要求用户购买软件或输入有效的许可证密钥。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值