Arsip: Buat Program aplikasi Trial dengan Registry


by EkoIndri in Serba Neka more 13 years ago 2949
Apabila temen-temen ada yang belum bisa membuat program aplikasi trial dengan mengkombinasikan database registry, maka janganlah khawatir, berikut ini merupakan pengembangan dari artikel saya sebelumnya yang diperbaharui dengan menambahkan program aplikasi main manager untuk mengontrol program aplikasi yang trial.

Semoga contoh artikel ini bisa membantu temen2 dalam mengembangkan ilmu pemrograman terutama yang berhubungan dengan bahasa pemrograman Delphi.

berikut ini saya akan berikan contoh 2 program aplikasi dengan bagian seperti berikut ini.

1. Program aplikasi Trial
2. Program Manager untuk control Program aplikasi Trial.

Untuk tahap awal, kita kerjakan untuk program aplikasi Trial.

Langsung saja silahkan anda lihat kode program beserta penjelasan seperti terlihat pada kode program berikut ini.
unit Unit1;
interface
uses
// Jangan lupa temen-temen untuk menambahkan library Registry agar bisa
// mendeklarasikan object TRegistry
// Awas lho ya kalau sampai lupa...... tak juewer kupingnya.... weakakakak
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Registry, ExtCtrls, StdCtrls;
type
TForm1 = class(TForm)
Label1: TLabel;
Button1: TButton;
Bevel1: TBevel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R .dfm}
procedure TForm1.FormCreate(Sender: TObject);
var
// Deklarasikan dulu nama atomnya
   // ini dilakukan jika anda menjadikannya sebagai variabel
   // So jika setiap kali anda menganggapnya sebagai variabel,
   // maka jangan lupa anda mendeklarasikannya terlebih dahulu
   NamaAtom : PChar;
// Deklarasikan object TRegistry
   // Ini digunakan jika memang temen2 yang ingin contoh sebenarnya
   // menggunakan registry itu seperti apa sih...
   // tapi untuk caranya pasti banyak sekali caranya dan ini
   // merupakan salah satu cara bagaimana kita memanfaatkan database
   // registry untuk memproteksi program aplikasi kita dengan
   // cara trial.
   // Semoga ini bisa menjadi acuan atau bahan untuk belajar object
   // registry, apabila ada yang kurang jelas silahkan buat thread baru
   // atu bisa juga PM bahwkan email maupun YM di eko_elits@yahoo.com
   // dan eko_elits
   Reg : TRegistry;
begin
// Create object TRegistry agar bisa diakses dan digunakan
   Reg := TRegistry.Create;
// proses perampingan koding dengan memanggil nama object sekali
   with Reg do
begin
// Buka key dari database registry dengan default root key-nya
   // di posisi -->> HKEY_CURRENT_USER
   // Jika nama Section \"Registry Eko Indriyawan\" tidak dijumpai, maka
   // akan dibuat Section tersebut.
   // kenapa ini dibuat, karena kita memberikan status default True
   // seperti ditunjukkan pada baris kode program dibawah ini
   OpenKey('Registry Eko Indriyawan',True);
// Jika anda ganti default status buat-nya dengan False, maka
   // jika section yang anda maksudkan tidak dijumpai, section yang anda
   // tentukan tadi diakan dibuat atau di-create....

// Berikut dibawah ini adalah baris kode program untuk mengambil
   // data dari database registry dengan nama key \"Key Registered\"
   // tentu saja value yang diambil dari data key dikonversi dulu
   // ke tipe PChar agar bisa dibaca oleh fungsi GlobalFindAtom
   NamaAtom := PChar(ReadString('Key Registered'));
// Validasi apakah ditemukan atom-nya
   // selain itu juga di cek apakah nama atom yang ditentukan
   // benar-benar ada atau tidak.
   // Ini digunakan untuk menditeksi apakah program aplikasi sudah
   // diregister atau belum diregister.
   // Jika jumlah karakter nama atom sama dengan nol, maka kita anggap
   // bahwa program aplikasi belum diregister. Dengan catatan key
   // untuk regsiter tidak null atau kosong
   if (GlobalFindAtom(NamaAtom) = 0)and(Length(NamaAtom)<>0) then
begin
// register atom ke sistem
     GlobalAddAtom(NamaAtom);
// keluar dari eksekusi baris program selanjutnya
     // dan program siap dioperasikan
     exit;
end
else if Length(NamaAtom) = 0 then
begin
// karena jumlah karakter dari variabel NamaAtom adalah 0
    // maka sesuai dengan kesepakatan sebelumnya, bahwa program aplikasi
    // ini berarti belum diregister
    MessageDlg('Program aplikasi ini belum diregister...',mtInformation,[mbOK],0)
end
else
begin
// Informasi kalau program aplikasi sudah pernah diregister dan masa
    // trial sudah habis.
    // untuk menjalankannya, silahkan anda register ulang dengan cara
    // mengganti key registernya...
    // ini merupakan cara yang bagus sekali karena tanpa harus melakukan
    // proses restart komputer
    MessageDlg('Program ini hanya dapat dijalankan sekali dalam satu sesi Windows'+#10#13+
'Untuk menjalankan program ini lagi, restart komputer Anda atau silakan' + #10#13+
'Silahkan anda minta untuk register ulang !!',mtInformation,[mbOK],0);
end;
// CloseKey, digunakan untuk menutup key yang sekarang sedang
   // aktif
   CloseKey;
// Hapus alokasi memory yang telah digunakan oleh Object TRegistry
   Free;
// Tutup Program aplikasi
   Application.Terminate;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose := True;
case MessageDlg('Apakah anda yakin akan keluar dari program aplikasi ini?'+#13#13+
'Ingat lho... anda tidak ada kesempatan lagi'+#13+
'NB : Anda bisa aktifkan lagi dengan cara register ulang....',
mtConfirmation,[mbYes,mbNo],0) of
mrYes:
begin
end;
mrNo:
begin
CanClose := False;
end;
end;
end;
end.
Syntax Highlighted with https://pascal-id.org/syntax


Kumudian silahkan anda setting Formnya seperti berikut dibawah ini.
Sebelumnya, silahkan anda hapus semua object yang ada didalam form
Namun apabila anda belum menambahkan sama sekali object kedalam form,
maka langsung saja silahkan anda klik kanan form-nya dan pilih [b]View as Text[/b], setelah itu atur konfigurasi form dan objectnya seperti berikut.

Namun temen2 jangan konyol dengan mengetikkan seperti dibawah ini,
cukup copy dari konfigurasi berikut ini, setelah itu lanjutkan paste di Delphi-nya.
object Form1: TForm1
Left = 152
Top = 100
Width = 393
Height = 208
Caption = 'Program develop by Eko Indriyawan'
Color = clWhite
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'MS Sans Serif'
Font.Style = []
OldCreateOrder = False
OnCloseQuery = FormCloseQuery
OnCreate = FormCreate
PixelsPerInch = 96
TextHeight = 13
object Label1: TLabel
Left = 116
Top = 64
Width = 154
Height = 13
Caption = 'Aplikasi berhasil untuk diaktifkan'
end
object Bevel1: TBevel
Left = -8
Top = 141
Width = 388
Height = 9
Shape = bsTopLine
end
object Label2: TLabel
Left = 4
Top = 88
Width = 95
Height = 13
Caption = 'For more information'
end
object Label3: TLabel
Left = 76
Top = 104
Width = 142
Height = 13
Caption = 'eko_elits@yahoo.com'
Font.Charset = DEFAULT_CHARSET
Font.Color = clOlive
Font.Height = -11
Font.Name = 'Verdana'
Font.Style = [fsBold]
ParentFont = False
end
object Label4: TLabel
Left = 20
Top = 104
Width = 34
Height = 13
Caption = 'E - mail'
end
object Label5: TLabel
Left = 20
Top = 120
Width = 16
Height = 13
Caption = 'YM'
end
object Label6: TLabel
Left = 76
Top = 120
Width = 60
Height = 13
Caption = 'eko_elits'
Font.Charset = DEFAULT_CHARSET
Font.Color = clOlive
Font.Height = -11
Font.Name = 'Verdana'
Font.Style = [fsBold]
ParentFont = False
end
object Button1: TButton
Left = 305
Top = 144
Width = 75
Height = 25
Caption = 'Close'
TabOrder = 0
OnClick = Button1Click
end
end
Syntax Highlighted with https://pascal-id.org/syntax


Setelah itu, klik kanan dan pilih [b]View as Form[/b]
Tekan tombol [b]Ctrl + A[/b]
Lanjutkan dengan tekan tombol [b]Ctrl+X[/b]
Teruskan dengan tekan tombol [b]Ctrl+V[/b]

Sekarang silahkan anda tekan tombol [b]Ctrl + F9[/b] untuk cek apakah ada error atau tidak.

Jika tidak ada error maupun warning, maka silahkan anda tekan tombol [b]F9[/b].

Apa yang terjadi.....

Ternyata program aplikasi anda belum diregister...

untuk itu jangan bingung dulu untuk registrasinya.....
kita lanjutkan terlebih dahulu untuk buat aplikasi yang kedua.

Langsung saja silahkan buat program aplikasi baru
dan tuliskan kode programnya seperti berikut dibawah ini

unit Unit1;
interface
uses
  // Sekali lagi jangan lupa untuk tambahkan library Registry kedalam uses
  Registry, Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;
type
  TForm1 = class(TForm)
  Button1: TButton;
  Edit1: TEdit;
  Label1: TLabel;
  Bevel1: TBevel;
  Button2: TButton;
  procedure Button1Click(Sender: TObject);
  procedure Button2Click(Sender: TObject);
  private
  { Private declarations }
  public
  { Public declarations }
  end;
var
  Form1: TForm1;
implementation
{$R  .dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
  // Deklarasikan object TRegistry
  Reg : TRegistry;
begin
// Buat Object Tregistry agar bisa diakses dan digunakan
Reg := TRegistry.Create;
// Ringkas object
with Reg do
  begin
  // Buka section, jika tidak ada maka akan dibuat
  OpenKey('Registry Eko Indriyawan',True);
  // proses registrasi key berdasarkan yang anda tentukan
  // dari object Edit1
  WriteString('Key Registered',Edit1.Text);
  // CloseKey
  CloseKey;
  // Lepaskan alokasi memory
  Free;
  end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
close;
end;
end.
Syntax Highlighted with https://pascal-id.org/syntax



Sekarang silahkan anda tekan tombol [b]F12[/b] hingga didapatkan tampilan form
setelah itu silahkan anda klik kanan dan pilih [b]View as Text/b]

Kemudian, silahkan anda copy konfigurasi form beserta object-object yang ada didalamnya seperti berikut dibawah ini dan lanjutkan dengan mem-paste kedalam program delphi anda.

object Form1: TForm1
  Left = 192
  Top = 114
  Width = 318
  Height = 172
  Caption = 'Develop by Eko Indriyawan'
  Color = clWhite
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'MS Sans Serif'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object Label1: TLabel
  Left = 16
  Top = 16
  Width = 18
  Height = 13
  Caption = 'Key'
  end
  object Bevel1: TBevel
  Left = 16
  Top = 104
  Width = 289
  Height = 25
  Shape = bsTopLine
  end
  object Button1: TButton
  Left = 16
  Top = 56
  Width = 75
  Height = 25
  Caption = 'Registered'
  TabOrder = 0
  OnClick = Button1Click
  end
  object Edit1: TEdit
  Left = 16
  Top = 32
  Width = 121
  Height = 21
  TabOrder = 1
  Text = 'Eko Cakep'
  end
  object Button2: TButton
  Left = 231
  Top = 108
  Width = 75
  Height = 25
  Caption = 'Close'
  TabOrder = 2
  OnClick = Button2Click
  end
end
Syntax Highlighted with https://pascal-id.org/syntax



Baiklah, sekarang silahkan anda lanjutkan dengan klik kanan dan pilih [b]View as Form[/b]

Tekan tombol [b]Ctrl + F9 [/b] untuk mengecek apakah ada error atau tidak.

setelah tidak ada error silahkan anda lanjutkan dengan menekan tombol [b]F9[/b]

Program siap jalan...

sekarang silahkan anda tentukan key untuk register, sebagai contoh [b]Eko Cakep[/b].

Tutup program aplikasi ini..
kemudian silahkan anda buka lagi program aplikasi trialnya...

apa yang terjadi ?
ternyata program bisa jalan...

jika anda akan matikan, sebelumnya ada konfirmasi....
apabila anda matikan, maka program sudah tidak bisa dijalankan lagi sebagaimana mestinya.

Namun anda bisa jalankan lagi apabila anda melakukan proses registrasi ulang.

Semoga contoh program ini bisa memberikan ilmu tambahan buat temen-temen yang belum mengetahuinya...

Amin.... jangan lupa untuk berbagi ilmu dengan temen2 lain yang belum mengerti...

tambahan buat mas [b]yayaretina[/b], jika menulis kan kode [b]+#10+#13+[/b], cukup [b]+#10#13+[/b] dah bisa koq....

btw, for all.... thanxs dah mau baca...
Local Business Directory, Search Engine Submission & SEO Tools FreeWebSubmission.com SonicRun.com