⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 简单的软件注册的设计【转】.txt

📁 网上收集的一些资料,希望对大家有点帮助,包括:Delphi 基本函数集,Delphi程序限制系统登陆QQ个数,Delphi经常用到的公共代码(Tools.pas),网上流传的 Delphi版 熊猫烧香
💻 TXT
字号:
procedure Tgcdzsys_grjs.FormCreate(Sender: TObject);
var
   Reg:Tregistry;    //自定义注册表变量
   NowDate,FirstDate:TDateTime;//自定义时间变量
   KeyName,TempCode,TempName,TempStr:string; //自定义字符串变量
   Same:Integer; //自定义整数变量
   NumberOfDays:Real;
begin
   //SB.Panels[0].Text:=' 工程地质勘察应用系统';
   //SB.Panels[1].Text:='   Email: Grjs_2001@163.com  或  Grjs_2001@sohu.com';
   NoRegistry:=true;
   NowDate:=date; //取得运行时系统日期
   try
   //创建注册表,有该键则读取,无则创建
    Reg:=Tregistry.Create ;
    Reg.RootKey :=Hkey_local_machine;
    KeyName:='Software\grjs\Example';
    if Reg.OpenKey(KeyName,true) then
      begin
        TempName:=Reg.ReadString('UsrName');
        TempCode:=Reg.ReadString('Passwd');
        //读取用户名,注册号
        try
         FirstDate:=Reg.ReadDate('Date');
         //非第一次则读入第一次运行时间
        except
         FirstDate:=NowDate;
         Reg.WriteDate('Date',NowDate);
         //若为第一次运行,则写入系统日期
        end;
      end;
      Reg.CloseKey;
   finally
   Reg.Free;
   end;
   TempStr:=Encrypt(TempName);
   //通过自定义函数Encrypt()来获取密码
   Same:=CompareText(TempStr,TempCode);
   //比较密码
   if TempName<>'' then
   if Same=0 then
   NoRegistry:=false;
   //验证密码,通过NoRegistry为false
   if NoRegistry then
     begin //若未注册...
      NumberOfDays:=Nowdate-FirstDate;
      SpareDays:=Round(10-NumberOfDays);
      ShowMessage('你已经剩下'+FloatToStr(SpareDays)+'天的使用时间了!请尽快注册!');
      if((NumberOfDays>10) or (NumberOfDays<-1)) then
        begin
         ShowMessage('程序未注册超过试用期或更改系统时间,将终止运行!');
         Application.Terminate;//超过10天,则禁止运行
        end;
     end;
end;


function Tgcdzsys_grjs.Encrypt(TempStr:string):string;
var
   Str1:String;
   i,j:Integer;
begin
   Str1:='';
   for i:=1 to Length(TempStr) do
    begin       //密码匹配方式
      j:=(i*i*i*i mod (i+30))+(i*i mod (i+20))+i*3+1;
      Str1:=Str1+chr(ord(TempStr[i])+j);
    end;
   Result:=Str1;
end;

procedure Tgcdzsys_grjs.DBBhelphgrjsClick(Sender: TObject);
var
   InptName,InptCode,RealCode:String;
   Same:Integer;
   Reg:Tregistry;
   Keyname:String;
begin
   if NoRegistry then //未注册时做
     begin
       RealCode:='';
       InptName:= InputBox('注册', '输入你的名字', '');
       if InptName<>'' then
        begin
          InptCode:= InputBox('注册', '输入注册号', '');
          RealCode:=Encrypt(InptName);
          Same:=CompareText(RealCode,InptCode);
         if (Same<>0) then
           ShowMessage('注册号码不对,注册未成功!')
         else
         begin
        //密码匹配时做:把用户名、密码写入注册表
         Try
          Reg:=Tregistry.Create ;          //激发注册表
          Reg.RootKey :=hkey_local_machine;//注册表路径
          KeyName:='Software\grjs\Example';//创建新的注册文件
         if Reg.OpenKey(KeyName,true) then
           begin
            Reg.WriteString('Passwd',InptCode); //注册密码
            Reg.WriteString('UsrName',InptName);//注册用户名
           end;
         Reg.CloseKey ;                        //关闭
         finally
         Reg.Free;                           //释放注册表
         end;
        NoRegistry:=false;//可修改注册后的界面
        end;
        end;
     end;
end;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -