Aktivasyon Kodu Hazırlama Hakkında

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
aXéNT

Aktivasyon Kodu Hazırlama Hakkında

Mesaj gönderen aXéNT »

Biliyorum bu konu bir çok kez tartışıldı bu sitede ama ben yeterli bilgi bulamadım. Benim isteğim çok basit. Bana sadece HDD Fabrika Seri No + CPU Seri No bi edite atılacak. Ve daha sonra buraya alınan seri nolar 10'luk sayı sistemine çevirelecek. Eğer bilen varsa paylaşırsa çok sevinirim. Şimdiden çok teşekkürler...
Kullanıcı avatarı
sabanakman
Kıdemli Üye
Mesajlar: 3081
Kayıt: 17 Nis 2006 08:11
Konum: Ah bi Antalya olaydı keşke (Ankara)

Re: Aktivasyon Kodu Hazırlama Hakkında

Mesaj gönderen sabanakman »

Alfabetik değerin onluk karşılığı demek biraz abes olmuş ama bu durumda keyfi olarak bir dönüşüm fonksiyonu hazırlayabilirsiniz. Bunun en basiti ASCII karşılıklarını elde etmek olacaktır ve buradan çıkan sayı çok büyük olacaktır.

Kod: Tümünü seç

function StrToASCII(const S:String):Int64;
var i:Integer;
begin
  Result:=0;
  for i := Length(S) downto 1 do begin
    Result:=Ord(S[i])+(Result*100);
  end;
end;
Bir de bir zamanlar yaptığım keyfi bir kod vardı başka sitede paylaşmıştım belki o da işinize yarayabilir. Ne işe yarayacağını düşünmeden yazmıştım antrenman olsun diye :mrgreen: .
http://www.delphiturk.com/Replys.aspx?P ... orumId=100

Kod: Tümünü seç

{Bileşenlerin ismine özel bir sayısal değer istiyorsanız bu fonksiyonu
güvenle (?) kullanabilirsiniz. (Acaba farklı iki isme aynı değeri üreteceği
bileşen ismi var mıdır?)}
function AdinaRakamVer(const BilesenIsmi:String):Integer;
const
  RakamCarpani   = 100;    GenRakamCarpani   = 100000;
  BuyukCarpani   = 1000;   GenBuyukCarpani   = 10000;
  KucukCarpani   = 10;     GenKucukCarpani   = 1000000;
  AltTireCarpani = 1;      GenAltTireCarpani = 10000000;
var i,j,Kucuk,Buyuk,Rakam,AltTire:Byte;
begin
  i:=Length(BilesenIsmi);
  Result:=i*35000;
  Rakam:=0;Kucuk:=0;Buyuk:=0;AltTire:=0;
  while i>0 do begin
    j:=Ord(BilesenIsmi[i]);
    case j of
      95:begin//_
        Inc(AltTire);
        Result:=Result+AltTire*AltTireCarpani*i*j;
      end;
      48..57 :begin//0..9
        Inc(Rakam);
        Result:=Result+Rakam*RakamCarpani*j*i;
      end;
      65..90:begin//A..Z
        Inc(Buyuk);
        Result:=Result+Buyuk*BuyukCarpani*j*i;
      end;
      97..122:begin//a..z
        Inc(Kucuk);
        Result:=Result+Kucuk*KucukCarpani*j*i;
      end;
    else
      Inc(Result,i*j);
    end;
    Dec(i);
  end;
  Result:=Result+GenRakamCarpani*Rakam+GenBuyukCarpani*Buyuk+GenKucukCarpani*Kucuk+GenAltTireCarpani*AltTire;
end;
Şaban Şahin AKMAN
_________________
Derin olan kuyu değil kısa olan iptir. - .
Cevapla