Cara Menyimpan dan Membaca Registry dengan Delphi XE8

Registry pada sistem operasi Windows adalah semacam database yang menyimpan informasi/data settingan sistem operasi dan aplikasi secara hierarki. Bisa dikatakan bahwa ‘jantung’ dari sistem operasi Windows ada di ‘Registry’ ini. Karena sifatnya yang menyimpan data secara permanen (non volatile) dalam sistem operasi iniah, maka kebanyakan aplikasi baik aplikasi bawaan Windows maupun ‘third party’ menggunakan Registry untuk menyimpan data tertentu di sana. Namun, sebaiknya Anda tetap berhati-hati dalam menggunakan Registry ini, karena jika ada kesalahan tertentu, sistem operasi Windows Anda bisa terganggu (hang) atau dalam case tertentu bisa menyebabkan crash sehingga harus diinstal ulang 🙂

cara-menyimpan-dan-membaca-registry-dengan-delphi-xe8

Function Delphi untuk Menyimpan dan Membaca Registry

Jika Anda membuat suatu aplikasi baik itu yang shareware maupun freeware, ada baiknya Anda memanfaatkan Registry ini untuk menyimpan data settingan tertentu, misalnya password default, nilai awal suatu parameter, dan lain-lain. Berikut ini akan saya contohkan bagaimana cara menyimpan dan membaca Registry dengan Delphi XE8. Caranya cukup mudah, cukup dengan memanggil dua function sebagai berikut:

function ReadReg(Key:string;default:string='admin'):string;
var 
 Registry : TRegistry;
begin
 Registry := TRegistry.Create;
 Registry.RootKey :=HKEY_CURRENT_USER;
 Registry.OpenKey('\software\'+nama_aplikasi,True);
 if registry.ValueExists(key) then
 readreg := Registry.readstring(key)
 else
 begin
  Registry.Writestring(key,default);
  Readreg := Registry.readstring(key);
 end;
Registry.Free;
end;
function WriteReg(Key:string;value:string):boolean;
var
 Registry: TRegistry;
begin
 Registry := TRegistry.Create;
 Registry.RootKey := HKEY_CURRENT_USER;
 Registry.OpenKey('\software\'+nama_aplikasi,True);
 registry.Writestring(key,value);
 result:= registry.KeyExists(key);
 Registry.Free;
end;

Perhatikan dua function di atas, function ‘ReadReg’ digunakan untuk membaca nilai suatu registry, dengan sintaks:

ReadReg(Key:string;default:string=’admin’):string;

Perhatikan bahwa function ‘ReadReg’ di atas akan mengembalikan sebuah nilai ‘string’ ketika function ini dipanggil.

Sedangkan function writeReg, digunakan untuk menulis suatu nilai pada ‘key’ Registry tertentu. Sintaksnya adalah sebagai berikut:

function WriteReg(Key:string;value:string):boolean;

Perhatikan bahwa function ‘WriteReg’ akan mengembalikan sebuah nilai true/false (Boolean). Jika berhasil menulis sebuah nilai ke Registry, maka nilai kembalian (return value) dari function ini akan bernilai ‘true’ dan sebaliknya, jika gagal menulis nilai ke registry (entah karena ‘key’ tidak ditemukan atau tipe data salah, dll), maka return value function ini akan bernilai ‘false’.

Penggunaan Function Menyimpan dan Membaca Registry dengan Delphi XE8

Jika Anda menggunakan Delphi XE8 (atau Delphi versi lain), cara menggunakan kedua function di atas cukup mudah. Berikut ini adalah contohnya:

  1. Definisikan dulu nama aplikasi melalui sebuah konstanta (atau variable juga boleh. Pendeklarasian konstanta ini di atas statement ‘implementation’
const
nama_aplikasi:string ='Saptaji_Apps';
  1. Ambil sebuah komponen TButton (Button1), kemudian isikan event handler-nya sebagai berikut:

WriteReg(‘password’,’ini_passwordku’);

Perintah di atas maksudnya adalah menuliskan password ‘ini_passwordku’ di key ‘HKEY_CURRENT_USER \ software\Saptaji_Apps\password’

  1. Ambil komponen TButton (Button2) dan TEdit, dan isikan event handler-nya sebagai berikut

Edit1.Text:=ReadReg(‘password’);

Maka, ketika Anda mengklik Button2 di atas maka di kotak Edit1 akan tertampil nilai pada key ‘HKEY_CURRENT_USER \ software\Saptaji_Apps\password’

Demikian sedikit tutorial bagaimana cara menyimpan dan membaca Registry dengan Delphi XE8. Cukup mudah bukan? Registry ini juga dapat Anda manfaatkan agar aplikasi Anda tidak mudah di-copy atau di-crack orang, tergantung kreativitas Anda.

0 0 votes
Article Rating

Leave a Reply

3 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Yosef

Bang saya ketemu kendala saat read registry dengan type “REG_DWORD” sepertinya tipe ini cara bacanya bukan dengan readstring ya, saya coba ganti readinteger juga nggak mau..
Adakah solusi??
terimakasih

Yosef

Nggak jadi Bang udah ketemu solusinya
terimakasih

3
0
Would love your thoughts, please comment.x
()
x