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:

'/-------------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.

5 comments

  1. Pa….saya berminat besar belajar VB tetapi waktu saya agak terbatas, apakah bisa ikut kursus OL VB dengan kasus tertentu, contohnya untuk koperasi GL, Mini Market, BPR, Payroll atau lainnya, saya pikir2 Bapak saja menyelengarakan kursus tersebut dengan paket2 tersebut atau lainnya, kalau Bapak sebagai penyelenggaranya saya daftar paling awal cobalah dipertimbangkan saran saya terimakasih

  2. Saya selalu gagal membuat method!!knp ya??
    pdhl sy yakin prosedurnya sdh benar!!

    Public Sub Bersih()
    KdPenggunaTxt.Text = ” ”
    PswTxt.Text = ” ”
    KdPenggunaTxt.Focus()
    End Sub

    apa yg salah??

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.