Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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:
- AssocCreate
- AssocQueryKey
- AssocQueryString
- AssocQueryStringByKey
- SHCopyKey
- SHDeleteEmptyKey
- SHDeleteKey
- SHDeleteValue
- SHEnumKeyEx
- SHEnumValue
- SHGetValue
- SHQueryInfoKey
- SHQueryValueEx
- SHRegCloseUSKey
- SHRegCreateUSKey
- SHRegDeleteEmptyUSKey
- SHRegDeleteUSValue
- SHRegDuplicateHKey
- SHRegEnumUSKey
- SHRegEnumUSValue
- SHRegGetBoolUSValue
- SHRegGetIntW
- SHRegGetPath
- SHRegGetUSValue
- SHRegOpenUSKey
- SHRegQueryInfoUSKey
- SHRegQueryUSValue
- SHRegSetPath
- SHRegSetUSValue
- SHRegWriteUSValue
- SHSetValue
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:
- RegCreateKey
- RegEnumKey
- RegOpenKey
- RegQueryValue
- RegSetValue