İşin içinden çıkamadım birtürlü anaform açılışında demo kontrolü yapıcam u kodları adam akıllı doğru şekilde ve açılışı fazla geciktirmeden nasıl yazabilirim.
if ADOQuery1.FieldByName('reg').AsString='registered' then ise bir sonraki aşamaya geç
if ADOQuery1.FieldByName('harddiskno').AsString=harddisknosu then ise döngüyü kes prog çalışmaya devam et değilse
showmessage('Kopya program kullanıyorsunuz');
tüm bunlar değilse aşağıdakileri yap
ADOQuery1.Insert;
ADOQuery1.FieldByName('harddiskno').AsString:=harddisknosu;
ADOQuery1.FieldByName('reg').AsString:='registered';
ADOQuery1.Post
harddisknosu nu aşağıdaki kodları çalıştırarak alıyorum diğer uzun kısımları yazmıyorum sadece çalıştırdığım kısımları alıyorum
s := GetIdeSerialNumber;
if s='' then
begin
rc := GetLastError;
if rc=0 then hsn:=''
else hsn:=SysErrorMessage(rc);
end
else hsn:= s;
açılış demo kontrol
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
- Trial_Cooder
- Üye
- Mesajlar: 236
- Kayıt: 17 Nis 2006 04:44
En İyisi
procedure TForm2.RzBitBtn1Click(Sender: TObject);
begin
if Edit1.Text <> '' then
begin
ShowMessage('Kullanıcı Adı Veya Şifre Yanlış');
Form2.Show
end
else
begin
if Edit2.Text = '' then
begin
Hide;
Form1.Show;
end
else
ShowMessage('Kullanıcı Adı Veya Şifre Yanlış');
end;
end;
procedure TForm2.FormCreate(Sender: TObject);
var
VolumeSerialNumber : DWORD;
MaximumComponentLength : DWORD;
FileSystemFlags : DWORD;
SerialNumber : string;
begin
GetVolumeInformation('C:', nil, 0, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, nil, 0);
SerialNumber := IntToHex(HiWord(VolumeSerialNumber), 4) + '-' + IntToHex(LoWord(VolumeSerialNumber), 4);
begin
DBISAMTable1.Edit;
if DBISAMTable1.FieldByName('Pc').Text = '' then
begin
DBISAMTable1.FieldByName('Pc').Text := SerialNumber;
end;
end;
if DBISAMTable1.FieldByName('Pc').Text <> '' then
if DBISAMTable1.FieldByName('Pc').Text = SerialNumber then
begin
DBISAMTable1.Post;
Edit1.Enabled := True;
Edit2.Enabled := True;
RzBitBtn1.Enabled := True;
end
else
begin
if MessageDlg('Bu Programı Kullanabilmeniz İçin Satın Almanız Gerekir! Satın Almak İstiyormusunuz?', mtConfirmation, [mbYes, mbNo], 0) = idYes then
begin
ShellExecute(Handle, 'open', 'http://www.site.com', nil, nil, sw_ShowMaximized);
Application.Terminate;
end
else
Application.Terminate;
end;
end;
procedure TForm2.RzBitBtn1Click(Sender: TObject);
begin
if Edit1.Text <> '' then
begin
ShowMessage('Kullanıcı Adı Veya Şifre Yanlış');
Form2.Show
end
else
begin
if Edit2.Text = '' then
begin
Hide;
Form1.Show;
end
else
ShowMessage('Kullanıcı Adı Veya Şifre Yanlış');
end;
end;
procedure TForm2.FormCreate(Sender: TObject);
var
VolumeSerialNumber : DWORD;
MaximumComponentLength : DWORD;
FileSystemFlags : DWORD;
SerialNumber : string;
begin
GetVolumeInformation('C:', nil, 0, @VolumeSerialNumber, MaximumComponentLength, FileSystemFlags, nil, 0);
SerialNumber := IntToHex(HiWord(VolumeSerialNumber), 4) + '-' + IntToHex(LoWord(VolumeSerialNumber), 4);
begin
DBISAMTable1.Edit;
if DBISAMTable1.FieldByName('Pc').Text = '' then
begin
DBISAMTable1.FieldByName('Pc').Text := SerialNumber;
end;
end;
if DBISAMTable1.FieldByName('Pc').Text <> '' then
if DBISAMTable1.FieldByName('Pc').Text = SerialNumber then
begin
DBISAMTable1.Post;
Edit1.Enabled := True;
Edit2.Enabled := True;
RzBitBtn1.Enabled := True;
end
else
begin
if MessageDlg('Bu Programı Kullanabilmeniz İçin Satın Almanız Gerekir! Satın Almak İstiyormusunuz?', mtConfirmation, [mbYes, mbNo], 0) = idYes then
begin
ShellExecute(Handle, 'open', 'http://www.site.com', nil, nil, sw_ShowMaximized);
Application.Terminate;
end
else
Application.Terminate;
end;
end;
-
- Üye
- Mesajlar: 508
- Kayıt: 30 Oca 2004 10:49
-
- Üye
- Mesajlar: 13
- Kayıt: 12 Tem 2003 08:51
- Konum: KONYA
Register Sorgulama
Bence programın register edilip edilmediğini bir splash form oluştur ve splash formda sorgulattır. Veritabanında değer saklatman pek güvenceli olmaz. en basitinden bir dosya (txt veya inf, dll) yazdırabilirsin. Splash form ilk açılışnda bu dosyadan bilgileri okur, şayet bu bilgiler o bilgisayar aitse (ki ben bunu biraz daha karmaşık hale getirip gelen verileri encode/decode mantığıyla yazdırıp okutturuyorum) sonra application.createform()'lara devam eder, trial ise (register edilmemişse) program uyarı mesajı verir ve sonlanır.
Yukarıda anlattığım kodların tamamı forumda yer almaktadır. bende forumdan faydalanarak yaptık bu işlemleri.
Başarılar dilerim.
Yukarıda anlattığım kodların tamamı forumda yer almaktadır. bende forumdan faydalanarak yaptık bu işlemleri.
Başarılar dilerim.
- Trial_Cooder
- Üye
- Mesajlar: 236
- Kayıt: 17 Nis 2006 04:44
Nick'e Bakıp Yorum Yapma İstersen
1. yöntem kullanmış olduğuın veri tabanının kullanıcı yetki tanımları vardır örn: olarak sana advantage veri tabanı kullanıcı yetki tanımlarını anlatayım.

birinci fotoda tanımlı olan kullanıcıları görüyorsun A01 kullanıcı üzerine tıkladıktan sonra table seçeneği ile bu kullanıcının table ler üzerindeki yetkilerini tanımlayabiliyorsun bunu sen bir defa yapıyorsun kullanıcı kayıtlı operatör ile login olduğunda direkt olarak veritabanındaki ayarları kullanıyor.

2. yöntem ..
veritabanında bazen yetkileri tanımlamak herşeyi çözmeyebilir daha doğrusu bazen eksik kalır.o zaman program içerisinde bunu yapacaksınız.nasıl yapılabilir peki..
örnek olarak. user diye kullanıcıların tutulduğu bir veri tabanı tablosu farzedelim ve useryetki diye herkullanıcın yetkilerinin takip edildiği bir yer düşünelim.
useryetki dosyasında bir kayıt var kayıtın ismi
stok kaydı yapılabilirlik evet veya hayır olabilir. peki bu kaydı isme göre takip etmek doğrumudur hayır. stok kaydı için bir numara belirlersiniz. örneğin 1001 bu stok kaydını temsil eder kullanıcı kendi op kodu ile login olduktan sonra stok bölümünde kayıt butonuna bastığında şunu yapalım . useryetki tablosundan kullanıcının login olduğu kod ve stok kaydı için numara dediğimiz 1001 arama yapalım kaydı bulduğumuzda eğer karşısında Evet yazıyorsa program devam etsin eğer değer hayır ise o esnada bir istisna olşsun ve kullanıcıya bu işlemi yapma yetkiniz yok diye mesaj versin



1. yöntem kullanmış olduğuın veri tabanının kullanıcı yetki tanımları vardır örn: olarak sana advantage veri tabanı kullanıcı yetki tanımlarını anlatayım.

birinci fotoda tanımlı olan kullanıcıları görüyorsun A01 kullanıcı üzerine tıkladıktan sonra table seçeneği ile bu kullanıcının table ler üzerindeki yetkilerini tanımlayabiliyorsun bunu sen bir defa yapıyorsun kullanıcı kayıtlı operatör ile login olduğunda direkt olarak veritabanındaki ayarları kullanıyor.

2. yöntem ..
veritabanında bazen yetkileri tanımlamak herşeyi çözmeyebilir daha doğrusu bazen eksik kalır.o zaman program içerisinde bunu yapacaksınız.nasıl yapılabilir peki..
örnek olarak. user diye kullanıcıların tutulduğu bir veri tabanı tablosu farzedelim ve useryetki diye herkullanıcın yetkilerinin takip edildiği bir yer düşünelim.
useryetki dosyasında bir kayıt var kayıtın ismi
stok kaydı yapılabilirlik evet veya hayır olabilir. peki bu kaydı isme göre takip etmek doğrumudur hayır. stok kaydı için bir numara belirlersiniz. örneğin 1001 bu stok kaydını temsil eder kullanıcı kendi op kodu ile login olduktan sonra stok bölümünde kayıt butonuna bastığında şunu yapalım . useryetki tablosundan kullanıcının login olduğu kod ve stok kaydı için numara dediğimiz 1001 arama yapalım kaydı bulduğumuzda eğer karşısında Evet yazıyorsa program devam etsin eğer değer hayır ise o esnada bir istisna olşsun ve kullanıcıya bu işlemi yapma yetkiniz yok diye mesaj versin

