Kayıt Defteri İşlevleri

Kayıt defteri ne zaman kullanılır?

Windows kayıt defteri, az miktarda yapılandırma verilerini (ayarlar, tercihler, kullanıcı başına durum) depolamak için uygundur. Diğer senaryolar için alternatifleri göz önünde bulundurun:

Scenario Recommendation
Uygulama ayarları (modern uygulamalar) Masaüstü uygulamaları için ApplicationData.LocalSettings (UWP/WinUI) veya JSON/XML dosyasını %APPDATA% tercih edin. Bunları yedeklemek, geçirmek ve hata ayıklamak daha kolaydır.
Büyük veriler veya yapılandırılmış veriler Büyük blobları kayıt defteri değerlerinde depolamak yerine bir dosya (JSON, SQLite vb.) kullanın.
Makine genelinde hizmet yapılandırması altındaki HKEY_LOCAL_MACHINE kayıt defteri uygundur; bu, Windows hizmetleri için standart mekanizmadır.
Kullanıcı başına tercihler (masaüstü uygulamaları) altındaki HKEY_CURRENT_USER\Software\<Company>\<App> kayıt defteri uygun ve gelenekseldir.
İşlemler arasında paylaşılan durum Adlandırılmış paylaşılan bellek, adlandırılmış kanallar veya bir dosya düşünün; kayıt defterinde değer okumalarında yerleşik değişiklik bildirimi yoktur. Yalnızca kaba ayrıntılı bildirim için RegNotifyChangeKeyValue kullanın.

Important

En iyi güvenlik uygulamaları: Gereken en düşük erişim haklarıyla (örneğin, KEY_READ veya KEY_WRITE) kayıt defteri anahtarlarını açın; veya MAXIMUM_ALLOWEDkullanmaktan KEY_ALL_ACCESS kaçının. HKEY_LOCAL_MACHINE Yalnızca yükseltilmiş (yönetici) işlemlerden yazın. Kayıt defteri işlevlerinden döndürülen değerleri her zaman denetleyin; bunlar başarı durumunda ve hatada Win32 hata kodu döndürür ERROR_SUCCESS (HRESULT değil).

Note

Yaygın tuzak — dize türleri: Kayıt defteri dize değerleri (REG_SZ, REG_EXPAND_SZ) öğesine geçirilen bayt sayısına null sonlandırıcıyı RegSetValueExiçermelidir. veya RegGetValueile RegQueryValueEx dizeleri okurken, depolanan değer sonlandırıcıyı içermiyorsa arabelleği her zaman null-terminate olarak sonlandırın; bazı üçüncü taraf yazılımlar dizeleri olmadan yazar.

Kayıt defteri işlevleri aşağıdadır.

Fonksiyon Açıklama
GetSystemRegistryQuota Kayıt defterinin geçerli boyutunu ve sistemde kayıt defterinin almasına izin verilen en büyük boyutu alır.
RegCloseKey Belirtilen kayıt defteri anahtarının tanıtıcısını kapatır.
RegConnectRegistry Başka bir bilgisayarda önceden tanımlanmış bir kayıt defteri tutamacıyla bağlantı kurar.
RegCopyTree Belirtilen kayıt defteri anahtarını, değerleri ve alt anahtarlarıyla birlikte belirtilen hedef anahtara kopyalar.
RegCreateKeyEx Belirtilen kayıt defteri anahtarını oluşturur.
RegCreateKeyTransacted Belirtilen kayıt defteri anahtarını oluşturur ve bir işlemle ilişkilendirir.
RegDeleteKey Alt anahtarı ve değerlerini siler.
RegDeleteKeyEx Kayıt defterinin belirtilen platforma özgü görünümünden bir alt anahtarı ve değerlerini siler.
RegDeleteKeyTransacted Bir alt anahtarı ve değerlerini, işlem yapılan işlem olarak kayıt defterinin belirtilen platforma özgü görünümünden siler.
RegDeleteKeyValue Belirtilen kayıt defteri anahtarından ve alt anahtarından belirtilen değeri kaldırır.
RegDeleteTree Belirtilen anahtarın alt anahtarlarını ve değerlerini yinelemeli olarak siler.
RegDeleteValue Belirtilen kayıt defteri anahtarından adlandırılmış bir değeri kaldırır.
RegDisablePredefinedCache Geçerli işlem için HKEY_CURRENT_USER için önceden tanımlanmış kayıt defteri tanıtıcısı için tanıtıcı önbelleğini devre dışı bırakır.
RegDisablePredefinedCacheEx Geçerli işlem için önceden tanımlanmış tüm kayıt defteri tanıtıcıları için tanıtıcı önbelleğini devre dışı bırakır.
RegDisableReflectionKey Belirtilen anahtar için kayıt defteri yansımasını devre dışı bırakır.
RegEnableReflectionKey Belirtilen devre dışı anahtar için kayıt defteri yansımasını etkinleştirir.
RegEnumKeyEx Belirtilen açık kayıt defteri anahtarının alt anahtarlarını numaralandırır.
RegEnumValue Belirtilen açık kayıt defteri anahtarının değerlerini numaralandırır.
RegFlushKey Belirtilen açık kayıt defteri anahtarının tüm özniteliklerini kayıt defterine yazar.
RegGetKeySecurity Belirtilen açık kayıt defteri anahtarını koruyan güvenlik tanımlayıcısının bir kopyasını alır.
RegGetValue Belirtilen kayıt defteri değeri için türü ve verileri alır.
RegLoadKey HKEY_USERS veya HKEY_LOCAL_MACHINE altında bir alt anahtar oluşturur ve belirtilen bir dosyadan kayıt bilgilerini bu alt anahtara depolar.
RegLoadMUIString Belirtilen anahtar ve alt anahtardan belirtilen dizeyi yükler.
RegNotifyChangeKeyValue Çağıranı, belirtilen kayıt defteri anahtarının özniteliklerinde veya içeriğinde yapılan değişiklikler hakkında bilgilendirir.
RegOpenCurrentUser Geçerli iş parçacığının kimliğine bürünen kullanıcının HKEY_CURRENT_USER anahtarına bir tanıtıcı alır.
RegOpenKeyEx Belirtilen kayıt defteri anahtarını açar.
RegOpenKeyTransacted Belirtilen kayıt defteri anahtarını açar ve bir işlemle ilişkilendirir.
RegOpenUserClassesRoot Belirtilen kullanıcı için HKEY_CLASSES_ROOT anahtarına bir tanıtıcı alır.
RegOverridePredefKey Önceden tanımlanmış bir kayıt defteri anahtarını belirtilen kayıt defteri anahtarıyla eşler.
RegQueryInfoKey Belirtilen kayıt defteri anahtarı hakkındaki bilgileri alır.
RegQueryMultipleValues Açık kayıt defteri anahtarıyla ilişkili değer adlarının listesinin türünü ve verilerini alır.
RegQueryReflectionKey Yansımanın belirtilen anahtar için devre dışı mı yoksa etkin mi olduğunu belirler.
RegQueryValueEx Açık bir kayıt defteri anahtarıyla ilişkili belirtilen değer adının türünü ve verilerini alır.
RegRenameKey Belirtilen kayıt defteri anahtarının adını değiştirir.
RegReplaceKey Kayıt defteri anahtarının ve tüm alt anahtarlarının yedeklenmesi dosyasını başka bir dosyayla değiştirir.
RegRestoreKey Belirtilen dosyadaki kayıt defteri bilgilerini okur ve belirtilen anahtarın üzerine kopyalar.
RegSaveKey Belirtilen anahtarı ve tüm alt anahtarlarını ve değerlerini yeni bir dosyaya kaydeder.
RegSaveKeyEx Belirtilen anahtarı ve tüm alt anahtarlarını ve değerlerini yeni bir dosyaya kaydeder. Kaydedilen anahtarın veya kovanın biçimini belirtebilirsiniz.
RegSetKeyValue Belirtilen kayıt defteri anahtarında ve alt anahtarında belirtilen değerin verilerini ayarlar.
RegSetKeySecurity Açık bir kayıt defteri anahtarının güvenliğini ayarlar.
RegSetValueEx Kayıt defteri anahtarı altında belirtilen değerin verilerini ve türünü ayarlar.
RegUnLoadKey Belirtilen kayıt defteri anahtarını ve alt anahtarlarını kayıt defterinden kaldırır.

 

Kayıt defteriyle aşağıdaki kabuk işlevleri kullanılabilir:

Başlatma dosyası işlevleri aşağıdadır. Bilgileri sistem veya uygulama tanımlı başlatma dosyasından alır ve kopyalar. Bu işlevler yalnızca Windows'un 16 bit sürümleriyle uyumluluk için sağlanır. Yeni uygulamalar kayıt defterini kullanmalıdır.

Fonksiyon Açıklama
GetPrivateProfileInt Başlatma dosyasının belirtilen bölümündeki bir anahtarla ilişkilendirilmiş tamsayıyı alır.
GetPrivateProfileSection Başlatma dosyasının belirtilen bölümü için tüm anahtarları ve değerleri alır.
GetPrivateProfileSectionNames Başlatma dosyasındaki tüm bölümlerin adlarını alır.
GetPrivateProfileString Bir başlatma dosyasında belirtilen bölümden bir dize alır.
GetPrivateProfileStruct Başlatma dosyasının belirtilen bölümündeki bir anahtarla ilişkili verileri alır.
GetProfileInt Win.ini dosyasının belirtilen bölümündeki bir anahtardan tamsayı alır.
GetProfileSection Win.ini dosyasının belirtilen bölümü için tüm anahtarları ve değerleri alır.
GetProfileString Win.ini dosyasının belirtilen bölümünde bir anahtarla ilişkilendirilmiş dizeyi alır.
WritePrivateProfileSection Başlatma dosyasında belirtilen bölümün anahtarlarını ve değerlerini değiştirir.
WritePrivateProfileString Bir dizeyi başlatma dosyasının belirtilen bölümüne kopyalar.
WritePrivateProfileStruct Verileri başlatma dosyasının belirtilen bölümündeki bir anahtara kopyalar.
WriteProfileSection Win.ini dosyasında belirtilen bölümün içeriğini belirtilen anahtarlar ve değerlerle değiştirir.
WriteProfileString Bir dizeyi Win.ini dosyasının belirtilen bölümüne kopyalar.

 

Eski İşlevler

Bu işlevler yalnızca Windows'un 16 bit sürümleriyle uyumluluk için sağlanır: