2 tane form açıyoruz. Birinin adına AcilisFormu, diğerinin adınada AnaMenu yazıyoruz.
AcilisFormu’nun üstüne bitane timer koyuyoruz ve intervalini 6000 yapıyoruz.
Ve tabi birda acces database oluşturucaz ve içine Kontrol Adında tablo oluşturuyoruz.
Bu tablonun içine AktivasyonKodu, HDDNo ve YuklenmeTarihi olarak 3 tane alan açıyoruz
1 tane DataModule açıp adını DM yapıp AdoConnection nesnesiyle gerekli bağlantıyı yapıyoruz
DataModule AdoTable ekleyip AdoConnectionla ilişkilendirip Kontrol tablosuna bağlıyoruz
Bundan sonra o forumu süslemek size kalmış program ilk çalıştığı zaman bu ekran gözükücek
Eğer hazırlıklarımızı yaptıysak gelelim kod kısmına. AcilisFormu önümüzdeyken F12 tuşuna basıp kod ekranın geçiyoruz ve aşağıda verdiğim kodları Uses kısmının altına ekliyoruz.
Kod: Tümünü seç
Function HDDVolumeSeri(Surucu:char): string;
var
NotUsed : dWord;
VolumeFlags : dWord;
VolumeInfo : array[0..MAX_PATH] of char;
VolumeSerialNumber: dWord;
begin
GetVolumeInformation(PChar(Surucu + ':\'),
VolumeInfo, SizeOf(VolumeInfo),
@VolumeSerialNumber, NotUsed,
VolumeFlags, nil, 0);
Result := Format('%x', [VolumeSerialNumber]);
end;
Function ASCIIbirUstHex( HDDVol:String ):String;
Var
Sayac : Integer;
begin
Result := '';
For Sayac := 1 to Length(HddVol) do begin
Result := Result + Format('%d', [ Ord(HddVol[Sayac])+1 ]);
end;
end;
Function SifiraTamamlayan( Anahtar: String ):String;
Var
Sayac : Integer;
begin
Result := '';
For Sayac := 1 to Length(Anahtar) do begin
Result := Result + Format('%d', [ 9 - StrToInt(Anahtar[Sayac]) ]);
end;
end;

Kod: Tümünü seç
Var HDD,BirUst,AktivasyonKodu:String
begin
HDD:=HHDDVolumeSeri('C');
BirUst:=ASCIIbirUstHex(HDD);
AktivasyonKodu:=SifiraTamamlayan(BirUst);
If DM.KontrolAktivasyonKodu.AsString = AktivasyonKodu Then
begin
Anamenu.Show; ;
AcilisEkrani.Hide;
end
Else
begin
If DM.KontrolHDDNo.AsString = HDDVolumeSeri('C') Then
begin
If DM.KontrolYuklenmeTarihi.AsDateTime > Date Then
begin
MessageDLG('Deneme sürümünüz dolmuştur. Lütfen programı kaydettiriniz.',mtWarning, [mbYes],0);
end
Else
begin
MessageDLG('Programınız Demo sürümdedir. En kısa sürede kaydettiriniz.',mtWarning, [mbYes],0);
AnaMenu.Show;
AcilisEkrani.Hide;
end
end
Else
begin
DM.Kontrol.Edit;
DM.KontrolTuru.AsString:='Demo';
DM.KontrolHDDNo.AsString:=HDDVolumeSeri ('C');
DM.KontrolYuklenmeTarihi.AsDateTime:=Date;
DM.Kontrol.Post
MessageDLG('Programınız Demo sürümdedir. En kısa sürede kaydettiriniz.',mtWarning, [mbYes],0);
SifreEkrani.Show;
AcilisEkrani.Hide;
end;
end;
end;
