Ö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.


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.
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.
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;