Makale Özeti

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.

Makale

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.

Bu iki prosedür ile uygulamalarınızda registry işlemlerini daha etkin kullanabileceğinizi ve makalenin işinize yarayacağını umuyorum.
Kadir SÜMERKENT