Jump to content

C#'ta Registry (reg) İşlemleri


wmismail

Recommended Posts

Operating System?in ayarlarının saklandığı, kurulu yazılım ve donanımın yanı sıra kullanıcıların kendilerine has bilgilerininde saklandığı yere Windows Registry denir. Bu klasörlerde saklanan veriler hem işletim sistemi açısından hem de kullanıcı açısından çok önemli bilgiler arz eder.Tahminimce herkesin ama bilgisayarı hızlandırmak için ama veri silmek ama kaydetmek için registry?e yolu bir şekilde yolu düşmüştür.

Biz yazılımcılar olarak yazmış olduğumuz projelerin çoğunda registry ?i kullanmaya gerek duymuşuzdur.Mesela programımızın verilerini registry de saklayabilir ya da şifresini registry?e kaydedip her defasında doğrulama yaptırarak açtırabilir ve bunlara benzer işlemleri registry sayesinde rahatça yapabilirsiniz. Bu makalede size registry ve kullanımı hakkında bilgi vermeye çalışacağım.

Registry işlemlerinizi windows projemizde yapabilmek için öncelikle aşağıdaki namespace ?i eklememiz gerekiyor.

Using Microsoft.Win32;

Yukarıda bulunan kütüphanemizi projemize ekledikten sonra artık registry işlemlerini gerçekleştirebiliriz.

Start->Run->Regedit yazdığımız takdirde aşağıdaki ağaç yapısı ve klasörler karşınıza gelecektir.

1.jpg

Yukarıda görmüş olduğunuz klasörler windows?un registry için bilgileri içinde bulundurdukları klasörlerdir. Kısaca bahsetmek gerekirse,

HKEY_CLASSES_ROOT : Yazılım ile ayarlar burada tutuluyor

HKEY_CURRENT_USER: O an oturumu açık olan kullanıcının bilgilerinin tutulduğu alan.

HKEY_LOCAL_MACHINE: Bilgisayarınız kurulu olan bütün yazılım ve donanımsal bilgilerin tutulduğu alan.

HKEY_USERS: Windows?ta bütün kayıtlı kullanıcıların masaüstü ve kullanıcı ayarlarının bulunduğu alan.

HKEY_CURRENT_CONFIG: O an ki donanımsal konfigürasyonların bulunduğu alan.

Bu kadar ön bilgiden sonra asıl işimize yarayacak kısıma geçmenin vaktinin geldiğini düşünüyorum.

Root Registry ?sinde yapılacak işlemler:

Root? a Veri Yazdırmak :

Registry.CurrentUser.SetValue('değişkenAdı?,'değeri?);

Bu şekilde root?a veri yazdırtabilirsiniz. Aynı şekilde CurrentConfig, ClassesRoot, LocalMachine ve Users yazarak diğer root?larada veri yazdırmanız mümkün.

Root? dan Veri Okumak :

Registry.CurrentUser.GetValue('değişkenAdı?).ToString();

Alt Klasörlerde registry işlemleri :

Alt Klasör Yaratmak :

Registry.CurrentUser.CreateSubKey("Software\\ErkanDervis");

Yukarıda yazmış olduğumuz kod ile CurrentUser Klasörünün içinde bulunan Software Klasörü içine ErkanDervis adlı bir klasör oluşturuyoruz.

Alt Klasöre Veri Yazdırmak :

Registry.CurrentUser.CreateSubKey("Software\\ ErkanDervis ").SetValue("DegiskenIsmi", Deger);

Yaratmış olduğumuz alt klasörün içerisine veri yazdırtmak için yukarıdaki kodu kullanırız.

Alt Klasörlerden Veri Okumak :

Registry.CurrentUser.OpenSubKey("Software\\ErkanDervis").GetValue("Degiskenimiz").ToString()

Alt Klasör Silmek:

Registry.CurrentUser.DeleteSubKey("Software\\ErkanDervis");

İç İçe Klasör Oluşturmak:

Registry.CurrentUser.CreateSubKey("Software\\ErkanDervis").CreateSubKey("AltKlasorumuz");

İç İçe Klasöre Veri Yazdırmak:

Registry.CurrentUser.CreateSubKey("Software\\ErkanDervis").CreateSubKey("AltKlasorumuz").SetValue("Degisken",Deger);

Belli başlı registry işlemlerinin nasıl kullanıldığını hep beraber gördük. Şimdi ise bu işlemleri kullanarak ufak bir uygulama geliştirelim.

Aşağıda yapmış olduğum bir örnek ile bilgilerinizin pekişeceğini düşünüyorum.

RegistryKey register = Registry.CurrentUser.OpenSubKey("Kitaplarim", true);

if (register == null)

{

Registry.CurrentUser.CreateSubKey("Kitaplarim");

RegistryKey register = Registry.CurrentUser.OpenSubKey("Kitaplarim ", true);

register.SetValue("BirinciKitap","WPF");

}

Else

{

register = Registry.CurrentUser.OpenSubKey("Kitaplarim ", true);

string sKitapAdi = register.GetValue("BirinciKitap").ToString();

}

Yukarıda yaptığımız örnekte öncelikle bir RegistryKey oluşturup, açmak istediğimiz registry klasörünü ona setliyoruz. Eğer bu klasör önceden yaratılmamış ise RegistryKey değerimiz null dönecektir ve if koşulundan içeri girip Kitaplarım adlı klasörü yaratacaktır ve içerisine BirinciKitap adlı bir değişken ile WPF adlı bir değer kaydedecektir.Eğer klasör zaten mevcut ise else bloklarından devam edip BirinciKitap isimli değişkenimizin içinde bulunan değeri string bir değişkene atacaktır. Bu arada metodlara verdiğim true değeri ilginizi çekmiş olabilir.Bunun anlamı yazılabilir olduğuna işarettir.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...