Makale Özeti

Windowsun registry kaydı sisteminize yüklenen tüm programlar ve elbette yüklü windows sürümünüz için merkezi bir database özelliği taşır....

Makale

VB.Netde Windows Registry İle Çalışmak

Windowsun registry kaydı sisteminize yüklenen tüm programlar ve elbette yüklü windows sürümünüz için merkezi bir database özelliği taşır. Bu yazımızda windows registry kayıtlarına nasıl erişeceğimizi, nasıl yeni kayıt ekleyip varolan kayıtları nasıl sileceğimizi inceleyeceğiz beraber.

Normal şartlarda registry kayıtlarını görmek için Başlat-Çalıştır dan "regedit" komutunu yazmanız yeterlidir.



Bu durumda karşınıza "Registry Manager" ekranı çıkacaktır. Bu ekran hiyerarşik bir sıralama ile size sisteminiz hakkında tuttuğu bazı kayıtları gösterir. Toplamda 5 anahtar mevcuttur.



Daha önceki yazılarımızda .Net Framework un geniş namespace mimarisinden bahsetmiştik. .Net framework registry ile çalışmamız için bize 2 class ayırmış.

-Registry
-RegistryKey

Bu classlar win32 namespace i içinde barındırılıyor.

Registry Class

Bize registry anahtarlarına ve üyelerine ulaşmamız için gerekli altyapıyı sunar.

CurrentUser - Kullanıcı tercihleri ile ilgili bilgi içerir.
LocalMachine  - Yerel makine konfigürasyonu hakkında bilgi içerir.
ClassesRoot - Tipler ve özellikleri hakkında bilgi içerir.
Users - Varsayılan kullanıcı hakkında bilgi içerir.
PerformanceData - Yazılım performanları ile ilgili bilgi içerir.
CurrentConfig - Kullanıcı bağımsız donanım konfigurasyon bilgisi içerir.
DynData - Dinamik data bilgisi içerir.

 
ClassesRoot HKEY_CLASSES_ROOT a erişim yetkisi verir.
CurrentConfig HKEY_CURRENT_CONFIG a erişim yetkisi verir.
CurrentUser HKEY_CURRENT_USER a erişim yetkisi verir.
DynData HKEY_DYN_DATA a erişim yetkisi verir.
LocalMachine HKEY_LOCAL_MACHINE a erişim yetkisi verir.
PerformanceData HKEY_PERFORMANCE_DATA a erişim yetkisi verir.
Users HKEY_USERS a erişim yetkisi verir.

Örneğin HKEY_LOCAL_MACHINE anahtarına erişmek istediğinizde Registry.LocalMachine metoduyla registry aahtarına erişirsiniz.

RegistryKey pRegKey = Registry.LocalMachine;

RegistryKey Class

RegistryKey sınıfı registry e okuma,yazma,değiştirme ve silme olanağı tanır. Özellik ve metodlarına bakacak olursak;

 

Özellikler Açıklama
Name Anahtarın ismini gösterir.
SubKeyCount Temel seviyedeki alt anahtar sayısını gösterir.
ValueCount Değer sayısını gösterir.


 

Metod Açıklama
Close Anahtarı kapatır.
CreateSubKey Şayet yoksa alt anahtar oluşturur varsa mevcut anahtarı açar. 
DeleteSubKey Alt anahtarı siler.
DeleteSubKeyTree Alt anahtarı ve alt yordamlarını siler.
DeleteValue Belirlenmiş değeri siler.
GetSubKeyNames Alt anahtar isimlerini içeren bir dizi döndürür.
GetValue Belirlenmiş değeri gösterir.
GetValueNames Bu anahtar için tanımlanmış değerleri dizi şeklinde döndürür.
OpenSubKey Alt anahtar açar.
SetValue Belirlenmiş değeri ayarlar.

Registryye yeni anahtar ve değer eklemek

Bu örnekte yukarıda saydığımız özellik ve metodları nasıl kullanacağımızı inceleyelim. Nasıl anahtar eklenir, nasıl update edilir ve nasıl silinir soularımıza yanıt bulmaya çalışalım.



CreateSubKey ve SetValue metodları ile yeni bir anahtar yaratalım ve değer girelim:

 

HKEY_LOCAL_MACHINE\Software altına MCBInc değerli bir alt anahtar açalım.
Dim key As RegistryKey = Registry.LocalMachine.OpenSubKey("Software", True)
Yeni bir alt anahtar ekleyelim
Dim newkey As RegistryKey = key.CreateSubKey("MCBInc")
Alt anahtara yeni bir değer verelim
newkey.SetValue("MCBInc", "NET Developer")


Registrydeki bilgiyi düzenlemek

Farklı bir alandaki değeri kullanarak işlemciyi bulalım
Dim pRegKey As RegistryKey = Registry.LocalMachine
pRegKey = pRegKey.OpenSubKey("HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0")
Dim val As Object = pRegKey.GetValue("VendorIdentifier")
Console.WriteLine("Bu makinenin merkezi işlemcisi:" + val)


Bilgi Silmek

DeleteValue metodu ile eklediğimiz kaydı silelim.
 

Dim delKey As RegistryKey = Registry.LocalMachine.OpenSubKey("Software", True)
delKey.DeleteValue("MCBInc")
Dim delKey As RegistryKey = Registry.LocalMachine.OpenSubKey("Software", True)
delKey.DeleteSubKey("MCBInc")

Tüm projemizin kodlarını topluca vermek gerekirse:

Imports System
Imports Microsoft.Win32
Module Module1
Sub Main()
  HKEY_LOCAL_MACHINE\Software altına MCBInc değerli bir alt anahtar açalım.
Dim key As RegistryKey = Registry.LocalMachine.OpenSubKey("Software", True)
Yeni bir alt anahtar ekleyelim
Dim newkey As RegistryKey = key.CreateSubKey("MCBInc")
Alt anahtara yeni bir değer verelim
newkey.SetValue("MCBInc", "NET Developer")
  •      Farklı bir alandaki değeri kullanarak işlemciyi bulalım
  • Dim pRegKey As RegistryKey = Registry.LocalMachine
    pRegKey = pRegKey.OpenSubKey("HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0")
    Dim val As Object = pRegKey.GetValue("VendorIdentifier")
    Console.WriteLine("The central processor of this machine is:" + val)
    Anahtar değerini silelim
    Dim delKey As RegistryKey = Registry.LocalMachine.OpenSubKey("Software", True)
    delKey.DeleteSubKey("MCBInc")
    End Sub
    End Module

    Evren AYAN
    MaxiASP.Net
    evren@maxiasp.net

    Kaynak :
    http://msdn.microsoft.com