Bu yazimizda Windows un bütün bilgilerinin depolandigi yer olan Regedit (Registry) e veri giris ve çikis islemlerin nasil yapildigina göz atacagiz. Burada yapilacak degisiklikler çok önemli oldugu için bu islemleri denerken çok dikkatli olmanizi öneriyorum (Bilgisayarinizda sanal bilgisayar varsa orada denemenizi tavsiye ederim). Regedit e baslat\çalisir\regedit diyerek erisebiliriz. Simdi veri yazma, okuma, silme islemlerini inceleyelim.
REGEDIT'e VERI YAZDIRMAK
Regedit e ilk olarak girdigimizde 5 ana baslik görecegiz. Windows bütün verileri bu 5 ana baslik altinda toparlamaktadir.
Istersek bu ana 5 kategoriye direk olarak istersek de bunlarin altlarinda bulunan kategorilere veri ekleme islemi yapabiliriz. Ilk olarak bu 5 ana kategori üzerinden baslayalim, Suanki duruma bir göz attigimizda alttaki görüntü ile karsilasiyoruz.
Islemlere baslamadan önce C# projemizde üst kisima asagidaki referans kismini eklemeliyiz, aksi taktirde kodumuz çalismayacaktir
using Microsoft.Win32; // !!!EKLEMEYI UNUTMA!!!
Mesela burdan Users basligina yeni veri ekleyelim.
Registry.Users.SetValue("Faruk",1991);
Kodu ile ismi Faruk ve degeri ise 1991 olan bi veri girisi yaptik, Suan regedit e tekrar göz attigimizda bu giris islemini görecegiz.
ALT KLASÖR EKLEME
Simdi de Users ana basligi altina FK isimli bir alt klasöt eklemesi yapalim
Registry.CurrentUser.CreateSubKey("FK");
ALT KLASÖRE VERI EKLEME
Simdi de ekledigimiz FK dizini altina yeni deger ekleyelim
Registry.CurrentUser.CreateSubKey("FK").SetValue("UNAL",312);
FK dizini altina Unal isminde bir veri ekledik ve deger olarak da 312 degerini atadik
ALT KLASÖR ALTINA ALT KLASÖR EKLEME
Ekledigimiz klasör altina yeni bir klasör daha eklemek için yine CreateSubKey metodunu kullaniyoruz. FK klasörünün altina yeni bir klasör daha olusturup ismini de Ankara yapmak için
Registry.CurrentUser.CreateSubKey("FK").CreateSubKey("Ankara");
REGEDIT den VERI OKUMAK
Programimiz içerisinde istersek daha önce regedit e yazdigimiz bir veri ile islem yapabilir yada istersek sistem kayitlarini okuyarak onlar üzerinde islemler yapabiliriz.
ANA BASLIKLARDAN VERI OKUMAK
Simdi ise biraz önceki ekledigimiz degerleri sira ile okuyalim, ilk olarak Users a ekledigimiz Faruk isimli degiskenin degerini okuyalim.
Registry.Users.GetValue("Faruk")
C# tarafinda ise su sekilde kullanabiliriz
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.Win32; // !!!EKLEMEYI UNUTMA!!!
namespace WebRegedit
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = Registry.Users.GetValue("Faruk").ToString();
}
}
}
ALT KLASÖRDEN VERI OKUMAK
CurrentUser ana basligi altindaki FK alt klasörüne ekledigimiz UNAL isimli degiskenin degerini okumak için
Registry.CurrentUser.OpenSubKey("FK").GetValue("UNAL")
Seklinde kullanabiliriz.
C# tarafinda ise su sekilde kullanabiliriz
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.Win32; // !!!EKLEMEYI UNUTMA!!!
namespace WebRegedit
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
textBox1.Text=Registry.CurrentUser.OpenSubKey("FK").GetValue("UNAL").ToString();
}
}
}
REGEDIT den VERI SILMEK
Silme islemi tehlikeli bir islemdir. Bu methot direk olarak regedit üzerinden veri kaldirma islemi yaptigi için sisteminize ciddi zararlar vermenize neden olabilir, o yuzden burada yapacaginiz islemlerde yazdiginiz kodlardaki dosya yollarina özen gösteriniz, aksi taktirde sisteminiz çökebilir.
Simdi de ekledigimiz FK klasörünü alt klasörü Ankara ile birlikte silme islemi gerçeklestirelim.
Kayit Defterimizin suanki hali su sekilde
Simdi de silme kodumuzu çalistirip tekrar bakiyoruz
Registry.CurrentUser.DeleteSubKeyTree("FK");