Site Renkleri

Visual Basic Dersleri

Visual Basic.NET ile Registry İşlemleri



Visual Basic.NET ile Registry İşlemleri

Bu makalede Base Class Libraryi ve Visual Basic.NETi kullanarak registrye yazma ve registryden okuma işlemlerini gerçekleştirecek prosedürler geliştirmeyi ele alıyor olacağız.

GetSetting, SaveSetting Fonksiyonları
Visual Basic.NET registrye veri yazmak için SaveSetting, registryden veri okumak içinse GetSetting fonksiyonlarını sunmaktadır ancak bu fonksiyonlar aşağıdaki kısıtlamalarla birlikte kullanılıyordu.
- Sadece HKEY_CURRENT_USER\Software\VB altındaki registry anahtarlarına erişmemize izin verir
- HKEY_CURRENT_USER altında işlem yapacağımız için bu fonksiyonları kullanarak işlem yapabilmek için oturum açmış olmamız gerekmektedir ve bu anahtar oturum açana kadar erişilebilir durumda olmayacaktır.

Registry ve RegistryKey Sınıflarının Kullanımı
GetSetting ve SaveSetting fonksiyonlarının kısıtlamaları olmadan registry üzerinde işlem yapabilmek için Microsoft.Win32 namespaceinde yer alan Registry ve RegistyKEY sınıflarını kullanırız. Registry anahtarı değerlere ve registry içinde yer alan alt anahtarlara erişebilmemizi sağlayan temel registry anahtarlarını sağlar. Kök registry anahtarını (CurrentUser gibi) temsil eden statik alanları vardır.

RegistryKey sınıfı ise sunduğu GetValue ve SetValue metodları aracılığıyla registrye veri ekleme ve registryden veri okuma imkanı sağlar.

Aşağıda bu iki sınıfı kullanarak registrye veri yazabilen ve registryden veri okuyabilen bir uygulamanın kodlarını görebilirsiniz. Uygulamada öncelikle veri okumak ve veri yazmak için iki prosedür hazırlanmakta, daha sonra bu prosedürlerin kullanımı örneklenmekte.
Imports System.Diagnostics

Imports Microsoft.Win32


Module RegistryIslemleri



Sub RegistryeVeriYaz(ByVal AnaAnahtar As RegistryKey, ByVal AltAnahtar As String, ByVal DegerAdi As String, ByVal deger As Object)

Dim k As RegistryKey

Try

registry anahtarını aç

k = AnaAnahtar.OpenSubKey(AltAnahtar, True)

If k Is Nothing Then anahtar yoksa

k = AnaAnahtar.CreateSubKey(AltAnahtar)

End If

değeri yaz

k.SetValue(DegerAdi, deger)

Console.WriteLine("{0} için {1} değeri başarıyla registrye yazıldı.", DegerAdi, deger)

Catch ex As Exception

Console.WriteLine("Registrye veri yazma işlemi esnasında aşağıdaki hata ile karşılaşıldı" & ControlChars.CrLf & ex.Message)

End Try

End Sub



Sub RegistydenVeriOku(ByVal AnaAnahtar As RegistryKey, ByVal AltAnahtar As String, ByVal DegerAdi As String, ByVal Deger As Object)

Dim k As RegistryKey

Try

registry anahtarını aç

k = AnaAnahtar.OpenSubKey(AltAnahtar, False)

If k Is Nothing Then eğer anahtar yoksa

Throw New Exception("Anahtar bulunamadı")

End If

değeri oku

Deger = k.GetValue(DegerAdi)

Console.WriteLine("{0} için {1} değeri başarıyla okundu", DegerAdi, Deger)



Catch ex As Exception

Console.WriteLine("Veri okuma işlemi sırasında aşağıdaki hata ile karşılaşıldı." & ControlChars.CrLf & ex.Message)

End Try

End Sub



Sub Main()

Veri yazıyoruz

RegistryeVeriYaz(Registry.CurrentUser, "Software\SuperUygulama", "Sayac", 1)



Veri Okuyoruz

Dim deger As Object

RegistydenVeriOku(Registry.CurrentUser, "Software\SuperUygulama", "Sayac", deger)



enter tuşuna basılmasını bekliyoruz

Console.ReadLine()

End Sub

End Module

Uygulama HKEY_CURRENT_USER\Software altında SuperUygulama adlı bir anahtar oluşturacak ve buraca Count adında bir DWORD değeri oluşturacak ve değer olacakta 1 verecektir.

Web Tasarımı | Site Tasarımı | Bilgisayar Dersleri | Hosting | Domain