Öncelikle Registry’nin tanımından başlayalım.

Registry, Windows işletim sisteminin tüm ayarlarının, teknik bilgilerinin tutulduğu yerdir. Başlat -> Çalıştır’dan regedit yazdığımız zaman Windows’un registry kullanıcı arayüzünü görebiliyoruz.

csharp-ile-registry-islemleri-1

csharp-ile-registry-islemleri-1

csharp-ile-registry-islemleri-2

csharp-ile-registry-islemleri-2

Registry kayıtları, Windows içinde USER.DAT ve SYSTEM.DAT isimli dosyalarda bulunmaktadır.

Yapı olarak da şekilde de görüleceği gibi bir ağaç yapısına sahiptir. Bilgisayardaki klasör-dosya mantığı burada anahtar-değer olarak kullanılmaktadır.

C# ile Registry işlemlerinin nasıl yapılacağını inceleyelim.
Öncelikle using bölümüne
using Microsoft.Win32;
namespace’ini ekliyoruz.

Registry’e Veri Yazma

Bir program yazdınız ve bu programın şifresinin bilgisayar içerisinde kaydedilmesini istiyorsunuz. O zaman şifrenizi şifreleyerek bilgisayarda registry kaydı olarak bulundurabilirsiniz. Bunun için öncelikle registry’nin iç yapısına bir göz atalım.

Registry’de (Windows XP ve Vista) 5 adet root bulunmaktadır. Bunlara ulaşabilmek için isimlerini kullanmamız gerekmektedir.

Root
CurrentUser
CurrentConfig
ClassesRoot
LocalMachine
Users

Root’lara Veri Yazma

Registry.CurrentUser.SetValue(“KullaniciAdi”, “ugur”);

 Registry içerisinde “Current User” root’una “KullaniciAdi” isminde bir değer value ve buna “uğur” değerini atadık.
csharp-ile-registry-islemleri-3

csharp-ile-registry-islemleri-3

Alt Anahtar Ekleme

Bilgisayardaki klasör mantığı, registry’de anahtar ismiyle kullanılıyor demiştik. Şimdi Registry’e anahtar ekleme işlemini inceleyelim.

Registry.CurrentUser.CreateSubKey(“Zirvedeki Beyinler”);

 Current user root’unun içine “Zirvedeki Beyinler” isimli anahtarı ekliyoruz.
csharp-ile-registry-islemleri-4

csharp-ile-registry-islemleri-4

Alt Klasör Veri Ekleme
Registry.CurrentUser.CreateSubKey(“Zirvedeki Beyinler”).SetValue(“KullaniciAdi”,”ugur”);
İç İçe Klasör Oluşturma
Registry.CurrentUser.CreateSubKey(“Zirvedeki Beyinler”).CreateSubKey(“Bodrum”);
Registry’den Veri Okuma
string veri = Registry.CurrentUser.GetValue(“KullaniciAdi”).ToString();
this.Text = veri;
Alt Klasör Silme
Registry.CurrentUser.CreateSubKey(“Zirvedeki Beyinler”).DeleteSubKey(“Bodrum”);
Klasör içindeki Değeri Silme
Registry.CurrentUser.DeleteValue(“KullaniciAdi”);
Alt Anahtar Sayısını Öğrenme
int adet = Registry.CurrentUser.SubKeyCount;
Değer Sayısını Öğrenme
int adet = Registry.CurrentUser.ValueCount;