http://blog.sina.com.cn/s/blog_693cf1cf0100oyus.html

procedure TForm1.form1create(Sender: TObject);
var
re_id:integer;
registerTemp : TRegistry;
inputstr,get_id:string;
dy,clickedok:boolean;
begin
 dy:=false; //软件是否已到注册期、及是否允许继续使用的标志,当值为FALSE是为允许使用。
 registerTemp := TRegistry.Create; //准备使用注册表
 with registerTemp do
 begin
   RootKey:=HKEY_LOCAL_MACHINE; //存放在此根下
   if OpenKey('Software\Microsoft\Windows\CurrentVersion\Mark',True) then
    // 建一目录,存放标志值
    begin
     if valueexists('gc_id') then begin //用gc_id的值作为标志,首先判断其存在否
       re_id:=readinteger('gc_id');//读出标志值
       if (re_id<>0) and (re_id<>100) then begin //若标志值为0,则说明已注册。
              //若不为0且值不到100,说明虽未注册,但允许使用的次数尚未达到。
        re_id:=re_id+5; //允许标志的最大值为100,每次加5,则最多只可用20次。
        Writeinteger('gc_id',re_id);//将更新后的标志值写入注册表中。
     end;
     if re_id=100 then dy:=true; //假如值已到100,则应注册。
    end
   else Writeinteger('gc_id',5);//建立标志,并置初始标志值。
  end;
  if dy then begin //若dy值为TRUE,则应提示用户输入注册码,进行注册。
    clickedok:=InputQuery('您使用的是非注册软件,请输入注册码:',' ',inputstr);
    if clickedok then begin
      get_id:=inttostr(27593758*2);//注册码为55187516,当然可加入更杂的算法。
      if get_id=inputstr then begin
        Writeinteger('gc_id',0);//若输入的注册码正确,则将标志值置为0,即已注册。
        CloseKey;
        Free;
       end
      else begin //若输入的注册码错误,应作出提示并拒绝让其继续使用
        application.messagebox('注册码错误!请与作者联系!','警告框',mb_ok);
        CloseKey;
        Free;
        application.terminate; //中止程序运行,拒绝让其继续使用
       end;
      end
    else begin //若用户不输入注册码,也应作出提示并拒绝让其继续使用
      application.messagebox('请与作者联系,使用注册软件!','警告框',mb_ok);
      CloseKey;
      Free;
      application.terminate;
     end;
  end;
 end;
end;

有关时间限制使用和软件注册的设计(delphi)的更多相关文章

  1. C#基于RSA加密算法实现软件注册实战演练

    一.课程介绍 本次分享课程属于<C#高级编程实战技能开发宝典课程系列>中的一部分,阿笨后续会计划将实际项目中的一些比较实用的关于C#高级编程的技巧分享出来给大家进行学习,不断的收集.整理和 ...

  2. IntelliJ IDEA 破解之后,用了一段时间后,打开软件提示 no suitable licenses left on the license server

    IntelliJ IDEA 破解之后,用了一段时间后,打开软件提示 no suitable licenses left on the license server 需要让我们重新注册,原来是之前的地址 ...

  3. Winform 注册机通用软件注册功能之建立有效的软件保护机制

    本文转载:http://www.cnblogs.com/umplatform/archive/2013/01/23/2873001.html 众所周知,一些共享软件往往提供给使用者的是一个功能不受限制 ...

  4. BS软件注册

    关于BS软件注册问题,目前的方式有通过加密狗访问的方式比较安全,本人为了节省使用成本,采用注册码的形式对每个客户端采用注册码的形式进行认证,防止用户使用同一账号在不同地方登陆使用,也可以防止一个账号, ...

  5. PC-破解RAR软件注册问题

    打开RAR文件提示软件注册 压缩软件WinRAR并不是免费软件,用了40天后,每次解压文件时都会弹出一提示,问你是否购买(但不影响功能),下面说下最新版的WinRAR v3.71(现在有更新版了,一样 ...

  6. 世界上最大的软件注册表-----npm

    npm 是什么? npm 为你和你的团队打开了连接整个 JavaScript 天才世界的一扇大门.它是世界上最大的软件注册表,每星期大约有 30 亿次的下载量,包含超过 600000 个 包(pack ...

  7. 软件顾问可视设计的得力助手——PowerMockup

    你可能是一位从事信息化的软件顾问,你也可能是一位软件设计师,你须要通过图形直观的向客户表达你的设计意图. 你可能已经积累了非常多的Powerpoint图形元素,但每次都要从以往的文件里到处寻找,浪费您 ...

  8. 敏捷软件开发_设计原则<三>

    敏捷软件开发_设计原则 单一职责原则(single responsibilities principle,SRP) 原理:一个类应该只有一个变化 分离职责:如果不耦合的职责那么很简单,如果两个职责耦合 ...

  9. php的字符转换 & php登入注册界面设计以及源码 & 分离公共部分

    我们在编写的时候总是会出现乱码 https://www.cnblogs.com/mafeng/p/5827215.html php登入注册界面设计以及源码 https://blog.csdn.net/ ...

随机推荐

  1. 剑指Offer - 九度1372 - 最大子向量和(连续子数组的最大和)

    剑指Offer - 九度1372 - 最大子向量和(连续子数组的最大和)2013-11-23 16:25 题目描述: HZ偶尔会拿些专业问题来忽悠那些非计算机专业的同学.今天JOBDU测试组开完会后, ...

  2. MQ消息中间件

    MQ是什么? MQ是Message Queue消息队列的缩写.消息队列是一种应用程序对应用程序的通信方法.应用程序通过写和检索入列队的针对应用程序的数据(消息)来进行通信,而不需要专用连接来链接它们. ...

  3. freemaker示例

    第一步  创建一个User.java文件 来两个变量 public class User {      private String userName;       private String us ...

  4. python自动化运维篇

    1-1 Python运维-课程简介及基础 1-2 Python运维-自动化运维脚本编写 2-1 Python自动化运维-Ansible教程-Ansible介绍 2-2 Python自动化运维-Ansi ...

  5. Leetcode 670.最大交换

    最大交换 给定一个非负整数,你至多可以交换一次数字中的任意两位.返回你能得到的最大值. 示例 1 : 输入: 2736 输出: 7236 解释: 交换数字2和数字7. 示例 2 : 输入: 9973 ...

  6. LeetCode-N皇后

                                          LeetCode-N皇后 n 皇后问题研究的是如何将 n 个皇后放置在 n×n 的棋盘上,并且使皇后彼此之间不能相互攻击. ...

  7. 搭建 MongoDB分片(sharding) / 分区 / 集群环境

    1. 安装 MongoDB 三台机器 关闭防火墙 systemctl stop firewalld.service 192.168.252.121 192.168.252.122 192.168.25 ...

  8. CentOS下Apache虚拟主机配置

    通过phpinfo可以看到Apache安装的目录 修改配置文件,首先将配置文件备份 编辑httpd.conf,并找到虚拟路径配置的部分 vi httpd.conf 在vi下先按esc在键入 :/vho ...

  9. HDU 4747 Mex ( 线段树好题 + 思路 )

    参考:http://www.cnblogs.com/oyking/p/3323306.html 相当不错的思路,膜拜之~ 个人理解改日补充. #include <cstdio> #incl ...

  10. 软件工程概论课堂测试一————添加新课程(web)

    设计思想 三个文件Class_add.java  add.jsp  addInput.jsp Class_add.java : 内封装方法:连接数据库.向数据库添加课程信息.判断非合理的输入情况.判断 ...