Bagikan melalui


Membaca dari dan Menulis ke Registri Menggunakan Namespace Microsoft.Win32 (Visual Basic)

Meskipun My.Computer.Registry harus mencakup kebutuhan dasar Anda saat memprogram terhadap registri, Anda juga dapat menggunakan Registry kelas dan RegistryKey di Microsoft.Win32 namespace .NET.

Kunci di Kelas Registri

Kelas Registry menyediakan kunci registri dasar utama yang dapat digunakan untuk mengakses subkunci dan nilainya. Kunci dasar itu sendiri hanya dapat dibaca. Tabel berikut mencantumkan dan menjelaskan tujuh kunci yang diekspos oleh Registry kelas.

Kunci Deskripsi
ClassesRoot Menentukan jenis dokumen dan properti yang terkait dengan jenis tersebut.
CurrentConfig Berisi informasi konfigurasi perangkat keras yang tidak spesifik pengguna.
CurrentUser Berisi informasi tentang preferensi pengguna saat ini, seperti variabel lingkungan.
DynData Berisi data registri dinamis, seperti yang digunakan oleh Driver Perangkat Virtual.
LocalMachine Berisi lima subkunci (Perangkat Keras, SAM, Keamanan, Perangkat Lunak, dan Sistem) yang menyimpan data konfigurasi untuk komputer lokal.
PerformanceData Berisi informasi performa untuk komponen perangkat lunak.
Users Berisi informasi tentang preferensi pengguna default.

Penting

Lebih aman untuk menulis data ke pengguna saat ini (CurrentUser) daripada ke komputer lokal (LocalMachine). Kondisi yang biasanya disebut sebagai "squatting" terjadi ketika kunci yang sedang Anda buat sebelumnya sudah dibuat oleh proses lain yang mungkin bersifat berbahaya. Untuk mencegah hal ini terjadi, gunakan metode, seperti GetValue, yang mengembalikan Nothing jika kunci belum ada.

Membaca Nilai dari Registri

Kode berikut menunjukkan cara membaca string dari HKEY_CURRENT_USER.

Dim regVersion As Microsoft.Win32.RegistryKey
Dim keyValue = "Software\\Microsoft\\TestApp\\1.0"
regVersion = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(keyValue, False)
Dim intVersion As Integer = 0
If regVersion IsNot Nothing Then
    intVersion = regVersion.GetValue("Version", 0)
    regVersion.Close()
End If

Kode berikut membaca, meningkatkan, lalu menulis string ke HKEY_CURRENT_USER.

Dim regVersion = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(
                  "SOFTWARE\\Microsoft\\TestApp\\1.0", True)
If regVersion Is Nothing Then
    ' Key doesn't exist; create it.
    regVersion = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(
                 "SOFTWARE\\Microsoft\\TestApp\\1.0")
End If

Dim intVersion As Integer = 0
If regVersion IsNot Nothing Then
    intVersion = regVersion.GetValue("Version", 0)
    intVersion = intVersion + 1
    regVersion.SetValue("Version", intVersion)
    regVersion.Close()
End If

Lihat juga