Kamis, 25 Maret 2010

Manipulasi Registry Dengan Visual Basic 2008

Dalam pembuatan satu programming project yang baik, tentu banyak melibatkan ‘melempar’ banyak parameter keluar. Sehingga untuk penyesuaian nilai parameter-parameter yang tidak konstan bisa di rubah dengan mudah dan tidak perlu merubah coding lagi. Biasa orang meletakan parameter-parameter itu di satu file yang biasa di beri ekstensi .ini atau di registry.

Nah, di artikel ini saya ingin membahas bagaimana mengakses, membuat dan merubah registry sehingga dapat membantu kita membuat satu aplikasi yang applicable dengan menggunakan Visual Basic 2008.

Tentu dengan Visual Basic 2008 ini kita dapat mengakses registry jauh lebih mudah di banding ketika menggunakan Visual Basic 6, karena semua function dan procedure yang di butuhkan sudah ada di framework-nya yang ketika artikel ini di tulis sudah sampai versi 3.5 (versi 4 masih Beta 1).

OK, langsung saja ya perhatikan contoh code di bawah ini:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
'/-------------daftar konstanta---------------------------
Private Const local_machine = "HKEY_LOCAL_MACHINE\"
Private Const alamat_reg_lengkap As String = "SOFTWARE\ElkanaSoft\ES.NET\"
'/--------------------------------------------------------
Public Sub set_reg_awal()
Dim reg_key As Object
'/isi variable registry
reg_key = My.Computer.Registry.LocalMachine.OpenSubKey(alamat_reg_lengkap, True)
'/cek apakah nilai registry sudah ada
If reg_key Is Nothing Then
'MsgBox("Registry Tidak Ada")
'/buat registry key standard
With My.Computer.Registry
'/buat subkey
.LocalMachine.CreateSubKey(alamat_reg_lengkap)
'/buat key default
.SetValue(local_machine & alamat_reg_lengkap, "Counter", 0, Microsoft.Win32.RegistryValueKind.String)
.SetValue(local_machine & alamat_reg_lengkap, "Server", "localhost", Microsoft.Win32.RegistryValueKind.String)
.SetValue(local_machine & alamat_reg_lengkap, "User", "es_mis", Microsoft.Win32.RegistryValueKind.String)
'/masukan nilai ke public variable
server_reg = .GetValue(local_machine & alamat_reg_lengkap, "Server", Nothing)
user_reg = .GetValue(local_machine & alamat_reg_lengkap, "User", Nothing)
End With
Else
With My.Computer.Registry
'counter_reg = .GetValue(local_machine & alamat_reg_lengkap, "Counter", Nothing)
server_reg = .GetValue(local_machine & alamat_reg_lengkap, "Server", Nothing)
user_reg = .GetValue(local_machine & alamat_reg_lengkap, "User", Nothing)
End With
End If
End Sub

Pada intinya procedure di atas akan memeriksa apakah nilai registry yang akan kita pakai dalam aplikasi sudah ada, jika belum buat dengan default value yang sudah kita tentukan. Dan berikut penjelasan detailnya:

  1. Di baris 2 dan 3, saya buat konstanta alamat registry nya.
  2. Buat variable dengan type object.
  3. Di baris 8 buka registry key-nya dulu karena kita akan melihat apakah sudah ada alamat registry dalam terdapat dalam kosntanta tersebut.
  4. Di baris 10 periksa apakah sudah ada atau belum, jika belum buat registry dengan cara pada baris 17-19. Di baris 17 misalnya, saya membuat registry value dengan jenis String bernama Counter dan saya beri nilai awal 0.
  5. Karena saya memerlukan nilai registry tersebut, maka saya masukan ke Public Variable saya di baris 21-22.
  6. Tapi jika nilai registry sudah ada langsung ambil nilai registry dengan method GetValue dan masukan langsung ke Public Variable (di baris 26-28).

Nah, cukup mudah kan? Semoga artikel ini bisa sedikit bermanfaat bagi rekan-rekan yang masih belajar Visual Basic 2008, seperti saya ini.



0 komentar:

Posting Komentar