Lisanslama

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Lisanslama

Mesaj gönderen ozcank »

Arkadaşlar delphi 2005 de bir lisanslama algoritmam vardı ama şimdi Delphi 2007 de hata veriyor bana yardım eder misiniz?

Kod: Tümünü seç


/////////////  REG KAYIT BAŞLA
function TForm1.RegKontrol: Boolean;
var
r:TRegistry;
uzunluk:integer;
i:integer;
rakam:integer;
karekter:string;
tek:string;
bilgi:string;
hdd:integer;
sayi:Double;
tarih:TDate;
Saat:Ttime;
Anahtar:String;
Kalan,Expired:Integer;
Sahip:String;
begin
   try
    r:=TRegistry.create;
    r.RootKey:=HKEY_LOCAL_MACHINE;
    if r.KeyExists('Software\EmanetPro') then
    begin
    r.OpenKey('Software\EmanetPro',false);
    tarih:=r.ReadDate('ActivationDate');
    Saat:=r.ReadTime('ActivationTime');
    Anahtar:=r.ReadString('UnLockKey');
    Sahip:=r.ReadString('RegistereDowner');
    r.CloseKey;
    end else
    begin
          r.CreateKey('software\EmanetPro');
          r.OpenKey('software\EmanetPro',false);
          r.WriteDate('sdate',date+30);
          r.WriteInteger('expired',30);
          r.WriteInteger('MachineID',12291238);
          r.WriteDate('ActivationDate',date);
          r.WriteTime('ActivationTime',time);
         r.WriteString('UnlockKey','NONEDEFAULT');
          r.WriteString('RegisreteDowner','UNKNOWN');
          r.CloseKey;
    end;
    ctl3d:=False;
    uzunluk:=Length(SysInfo.VolumeSerialNo);    ////// SYSINFO Yerine başka kullanabileceğim bir kod var mı?
    karekter:=SysInfo.VolumeSerialNo;               ////// SYSINFO Yerine başka kullanabileceğim bir kod var mı?
  for i:=1 to uzunluk do
      begin
       tek:=copy(karekter,i,1);
      if (tek<'A') and (tek>'0') then bilgi:=bilgi+tek;
           end;
     hdd:=StrToInt(bilgi);
     sayi:=Round((hdd*tarih/5431)*tarih);
     if Anahtar<>Encrypt(CurrToStr(sayi),1238) then
       begin
        form1.BitBtn1.Visible:=true;
        r.OpenKey('software\EmanetPro',false);
        Tarih:=r.ReadDate('sdate');
        Kalan:=round(tarih-date);
        Expired:=R.ReadInteger('expired');
        ProgressBar1.Position:=30-kalan;
        label2.Caption:=Format('DEMO Kalan Süre %d gün.',[kalan]);
        if Kalan>Expired then
           begin
             Application.MessageBox('Kaçak Kullanım..!','HATA',mb_ok+MB_ICONERROR);
             Application.Terminate;
           end else
       begin
        r.WriteInteger('expired',kalan);
        r.CloseKey;
         if kalan<0 then
          begin
            Application.MessageBox('DEMO için Kullanım süresi doldu..!','DEMO',mb_ok+MB_ICONWARNING);
            Application.Terminate;
          end;
       end;

       end else
        begin
          ProgressBar1.Visible:=false;
          label2.Caption:='Lisans Sahibi :'+Sahip;
        end;
 finally
   r.free;
  end;


end;



SYSINFO Componenti vardı ama oda D2005 göre D2007 hata veriyor
ozcank
Üye
Mesajlar: 937
Kayıt: 28 Nis 2005 05:29

Re: Lisanslama

Mesaj gönderen ozcank »

Arkadaşlar ; SySInfo componenti nasıl bulabilirim D7 için siteleri dolaştım ama bir türlü bulamadım bulduklarımda uyuşmadı

Kod: Tümünü seç

    uzunluk:=Length(SysInfo.VolumeSerialNo);    ////// SYSINFO Yerine başka kullanabileceğim bir kod var mı?
    karekter:=SysInfo.VolumeSerialNo;               ////// SYSINFO Yerine başka kullanabileceğim bir kod var mı?
bu kısma kullanmam gerekiyor
Cevapla