Arsip: butuh penerawangan pada validasi program??????????

 
user image
more 17 years ago

rehatta

bpk 2x ibu 2x. saya butuh penerawangan nich. saya buat program untuk masa pakai prog tu 10 hari, misal tgl sekarang 14/08/2007 maka masa berlaku prog tu sampai 24/08/2007 maka prog tersebut nggak bisa dipake lagi sampe serial number diinputkan, masalahnya jika tgl di window saya rubah maka masa validasi juga berubah. source code yg ane buat seperti nih kira2xnya: var jumhari:integer; hr1,bln1,thn1:word; Tgl1, Tgl2 : TDateTime; begin jumhari:=20; Tgl1:=now; Tgl1:=incday(Tgl1,jumhari); Tgl2:=Tgl1; label1.caption:=datetostr(Tgl1); end; klo menurut penerawangan dari kitab ki joko manteb dikit bab 1 ayat 3 di baris ke terakghir (weleh) data tanggal n waktu ke 1 dibandingkan data tanggal n waktu ke 2. Ruemit dagh tolonks dunk makasih rey
user image
more 17 years ago

n3o_cybertech

wah, itu pertanyaan yang pingin aq tanyakan juga, masalahnya biasanya aq kalo bikin program trial, cuman tak kasih batasan fasilitas + jumlah program dibuka.
user image
more 17 years ago

bboyz

coba pada saat aplikasi pertama kali dijalankan kamu buat satu value di registry utk pencatatan tgl pertama aplikasi kamu dibuka
user image
more 17 years ago

mas_kofa

kalo aku bikin prog trial aku batasi recordnya........(klo prog db) klo gak pake db hasil hitungan hari.....disimpan dalam bentuk registry, file *.ini atau file apalah.......biar tidak bisa diakali dengan merubah tanggal komputer
user image
more 17 years ago

DelphiExpert

well benar @bboyz bilang, clue-nya adalah mencatat tanggal pd saat pertamakali program di install/dijalankan (begin-mark) selanjutnya simpan tanggal terakhir program dijalankan (begitu prg ditutup); jika validasi tanggal valid (last-mark). langkah berikutnya adalah pd saat starting (prg dijalankan) check validasi antar begin-mark, last-mark & current system date) dengan demikian, sekalipun tanggal system dimundurkan begitu program anda expired, berbekal ke-tiga value tsb diatas anda bisa mendeteksi apakah tanggal system skrng adalah valid/tidak. jika tidak valid bilang aja ke user "Hayoo... elu coba2 mengganti tanggal ya" wekekek... :mrgreen:
user image
more 17 years ago

reminder2k1

ide @DelphiExpert tuh jitu banget... Selama ini saya cuma pake 2 validasi ada begin-mark & current system date... Boleh di coba tuh... :D
user image
more 17 years ago

vikraa

saya tertarik dengan ide mas @delphiexpert, saya sempat coba coba bikin validasi pake registry tapi klo tanggalnya di balikin lagi masih bisa dijalanin programnya, codingnya seperti ini :

var
 ..............
  Masa:integer;
implementation
................
Function TForm1.RegRead (Mykey,MyField : String) : string;
Var
  Reg : TRegistry;
begin
Reg := TRegistry.Create;
with Reg do
 begin
  RootKey:=HKEY_LOCAL_MACHINE;
  if OpenKey(MyKey,true) then
   begin
    if ValueExists(MyField) then
       result := ReadString(MyField)
    else
       Result:='';
   end
   else
   ShowMessage('Error opening/creating key : '+MyKey);
   CloseKey;
 end;
end;
Procedure TForm1.RegWrite (Mykey,MyField,MyValue : String);
Var
  Reg : TRegistry;
begin
  Reg := TRegistry.Create;
  with Reg do
  begin
  RootKey:=HKEY_LOCAL_MACHINE;
  if OpenKey(MyKey,true) then
    Writestring(MyField,MyValue)
  else
   ShowMessage('Error opening/creating key : '+MyKey);
   CloseKey;
 end;
end;

procedure TForm1.FormCreate(Sender: TObject);
var
 TglExp,TglSkr,TglMulai:string;
begin
 Masa:=3;
 if Length(Trim(RegRead('SOFTWARE\MyProgramm','BeginMark')))=0 then
 begin
  RegWrite('SOFTWARE\MyProgramm','BeginMark',DateToStr(Now));
  RegWrite('SOFTWARE\MyProgramm','LastMark',DateToStr(Now+Masa));
  RegWrite('SOFTWARE\MyProgramm','CurrSysDate',DateToStr(Now));
 end
 else
 begin
  RegWrite('SOFTWARE\MyProgramm','CurrSysDate',DateToStr(Now));
  TglMulai:=RegRead('SOFTWARE\MyProgramm','BeginMark');
  TglExp:=RegRead('SOFTWARE\MyProgramm','LastMark');
  TglSkr:=RegRead('SOFTWARE\MyProgramm','CurrSysDate');
  if (TglSkr<=TglExp)and(TglSkr>=TglMulai) then
   Application.Run
  else
   begin
    ShowMessage('Masa Trial Habis');
    Application.Terminate;
   end;
 end;
 
end;
mohon pencerahannya, makasih
user image
more 17 years ago

DelphiExpert

@vikraa: LastMark bukanlah penanda Tanggal Expired, tapi sebagai acuan guna validasi tgl sistem telah dimodifikasi atau tidak (dengan toleransi tertentu, jika masih dalam range wajar ya ngga' apa2) Toleransi --> SysDate > BeginMark and SysDate >= LastMark kurang dari itu tanggal system tidak valid! - BeginMark hanya ditulis sekali pd waktu instalasi / saat pertamakali program di jalankan, selanjutnya tidak boleh ditulis lagi. seperti contoh berikut:

if not RegKeyExists('BeginMark') then WriteBeginMark(Now);
- CurrSysDate tidak dibaca dari registry, tapi dari fungsi delphi (Now) yg mengembalikan nilai tgl & jam sekarang... - begitu program ditutup (dengan catatan validasi awal valid), anda harus selalu menulis LastMark (Now) yg akan digunakan sebagai acuan validasi awal
user image
more 17 years ago

vikraa

ooo...begitu makdus nya...ternyata bisa juga batasin program pake tanggal :D maaf saya masih newbie, makasih mas @delphiexpert
user image
more 17 years ago

rehatta

wah banyak sekali saran dan idenya, makasi, kamsia,thk, hatur nuhn semuanya dagh. rey ============MAJU TERUS PANTANG MUNDUR=============== :)
more ...
  • Pages:
  • 1
  • 2
  • 3
Share to

AI Forward

🚀 We're thrilled to partner with Alibaba Cloud for "AI Forward - Alibaba Cloud Global Developer Summit 2025" in Jakarta! Join us and explore the future of AI. Register now: https://int.alibabacloud.com/m/1000400772/
#AlibabaCloud #DeveloperSummit #Jakarta #AIFORWARD

Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com