açılış demo kontrol

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
zaxacm
Üye
Mesajlar: 129
Kayıt: 05 Ara 2005 05:48

açılış demo kontrol

Mesaj gönderen zaxacm »

İş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;
Kullanıcı avatarı
Trial_Cooder
Üye
Mesajlar: 236
Kayıt: 17 Nis 2006 04:44

Mesaj gönderen Trial_Cooder »

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;
shadowmann
Üye
Mesajlar: 508
Kayıt: 30 Oca 2004 10:49

Mesaj gönderen shadowmann »

Arkadaşın nickinden belli konuya hakim olduğu. Turbopower onguardda istediginiz komponent var. Ama kırılması çok kolay. Sizin yöntmeinizde de mdb dosyasını açmak (şifresini geçerek ) çok kolay. Bence bu da çok güvenli değil.
erdemir_hakki
Üye
Mesajlar: 13
Kayıt: 12 Tem 2003 08:51
Konum: KONYA

Register Sorgulama

Mesaj gönderen erdemir_hakki »

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.
zaxacm
Üye
Mesajlar: 129
Kayıt: 05 Ara 2005 05:48

Mesaj gönderen zaxacm »

İlgilenen arkadaşların hepsine çok teşekkür ederim.
Kullanıcı avatarı
Trial_Cooder
Üye
Mesajlar: 236
Kayıt: 17 Nis 2006 04:44

Mesaj gönderen Trial_Cooder »

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.
Resim
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.
Resim
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
Resim
Resim
Cevapla