22 Ocak 2018 Pazartesi

Registry Sınıfı

Giriş
Şu satırı dahil ederiz.
using Microsoft.Win32.RegistryKey;
Registry metodları Win32 ile kullanılırken de her zaman açılan anahtar kapatılır. Aynı mantık C# için de geçerli.
HKEY hk;

if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, 
                "Software\\Microsoft\\Windows\\Current Version\\Run", 
                 0, KEY_READ, &hk) == ERROR_SUCCESS)
{
  ...
  RegCloseKey(hk);
}
Dolayısıyla bu sınıf her zaman using ile kullanılmalı.
using (var key = Registry.LocalMachine.OpenSubKey("SOFTWARE\\MICROSOFT\\WINDOWS"))
{
  if (key != null)
  {
    var value = key.GetValue("LastVerify");
    if (value != null)
    {
      var lastVerify = value; // cast to whatever type LastVerify is
    }
  }
}
Constructor
Constructor metodu yeriner OpenSubKey metodu kullanılır. Şöyle yaparız.
RegistryKey key = Registry.CurrentUser.OpenSubKey
  ("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
Close metodu
Şöyle yaparız.
mkey.Close();
CreateSubKey metoud
Şöyle yaparız.
RegistryKey k1 = mkey.CreateSubKey("test");
DeleteSubKeyTree metodu
Silmek için Open metodu true ile çağrılmalı.
RegistryKey mykey = Registry.LocalMachine.OpenSubKey("SOFTWARE", true);
mykey.DeleteSubKeyTree("mysoftware");
mykey.Close();
GetValue metodu
Object tipinde bir nesne döner. İstediğimiz tipe cast ederiz. Şöyle yaparız.
var value = (String)myKey.GetValue("JdkPath");
OpenSubKey metodu - readonly
Okumak için şöyle yaparız.
var key = Registry.LocalMachine.OpenSubKey("SOFTWARE\\MICROSOFT\\WINDOWS")
OpenSubKey metodu - read + write
Yazmak için şöyle yaparız. İkini parametre yazma erişimi için true olmalıdır. Yeni bir anahtar yaratmak veya mevcut anahtarı silmek için true geçmek gerekir.
RegistryKey mykey = Registry.LocalMachine.OpenSubKey("SOFTWARE", true);
SetValue metodu
Şöyle yaparız.
k1.SetValue("my value","here");
Win32 Örnekleri
Açmak için şöyle yaparız.
HKEY hkey;
LRESULT lResult = RegOpenCurrentUser(KEY_READ, &hkey);
Key yaratmak için şöyle yaparız.
DWORD dwDisposition;

if (RegCreateKeyEx(HKEY_CURRENT_USER,
      TEXT("Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\system"),
      0,
      NULL,
      0,
      KEY_SET_VALUE,
      NULL,
      &hkey,
      &dwDisposition) == ERROR_SUCCESS)
{
   ...
}
Değer atamak için şöyle yaparız.
DWORD  dwType = REG_DWORD;
DWORD   dwSize = sizeof(DWORD);
RegSetValueEx(hkey, TEXT("DisableTaskMgr"), 0, dwType, (PBYTE)&value, dwSize);
Kapatmak için şöyle yaparız.
RegCloseKey(hkey);


Hiç yorum yok:

Yorum Gönder