HKEY_CLASSES_ROOT Anahtarı
HKEY_CLASSES_ROOT (HKCR) anahtarı, ProgID'ler, CLSID'lerve IID'lergibi dosya adı uzantısı ilişkilendirmelerini ve COM sınıf kayıt bilgilerini içerir. Öncelikle 16 bit Windows'ta kayıt defteriyle uyumluluk için tasarlanmıştır.
Sınıf kaydı ve dosya adı uzantısı bilgileri hem HKEY_LOCAL_MACHINE hem de HKEY_CURRENT_USER anahtarları altında depolanır. HKEY_LOCAL_MACHINE\Software\Classes anahtarı, yerel bilgisayardaki tüm kullanıcılara uygulanabilecek varsayılan ayarları içerir. HKEY_CURRENT_USER\Software\Classes anahtarı yalnızca etkileşimli kullanıcıya uygulanan ayarları içerir. HKEY_CLASSES_ROOT anahtarı, bu iki kaynaktan gelen bilgileri birleştirilen kayıt defterinin bir görünümünü sağlar. HKEY_CLASSES_ROOT, Windows'un önceki sürümleri için tasarlanmış uygulamalar için bu birleştirilmiş görünümü de sağlar.
Kullanıcıya özgü ayarlar varsayılan ayarlara göre önceliğe sahiptir. Örneğin, varsayılan ayar .doc dosyaları işlemek için belirli bir uygulama belirtebilir. Ancak bir kullanıcı kayıt defterinde farklı bir uygulama belirterek bu ayarı geçersiz kılabilir.
RegOpenKeyEx veya RegQueryValueEx gibi kayıt defteri işlevleri, HKEY_CLASSES_ROOT anahtarını belirtmenize olanak sağlar. Bu işlevleri etkileşimli kullanıcı hesabında çalışan bir işlemden çağırdığınızda, sistem HKEY_LOCAL_MACHINE\Software\Classes'deki varsayılan ayarları HKEY_CURRENT_USER\Software\Classes'daki etkileşimli kullanıcının ayarlarıyla birleştirir. Bu ayarların nasıl birleştiği hakkında daha fazla bilgi için bkz. HKEY_CLASSES_ROOT Birleştirilmiş Görünümü.
Etkileşimli kullanıcının ayarlarını değiştirmek için, değişiklikleri HKEY_CLASSES_ROOTyerine HKEY_CURRENT_USER\Software\Classes altında depolayın.
Varsayılan ayarları değiştirmek için, değişiklikleri HKEY_LOCAL_MACHINE\Software\Classesaltında depolayın. HKEY_CLASSES_ROOTaltındaki bir anahtara anahtar yazarsanız, sistem bilgileri HKEY_LOCAL_MACHINE\Software\Classesaltında depolar. HKEY_CLASSES_ROOTaltındaki bir anahtara değerler yazarsanız ve anahtar HKEY_CURRENT_USER\Software\Classesaltında zaten varsa, sistem bilgileri HKEY_LOCAL_MACHINE\Software\Classesaltında değil orada depolar.
Etkileşimli kullanıcınınkinden farklı bir güvenlik bağlamında çalışan işlemler, kayıt defteri işlevleriyle HKEY_CLASSES_ROOT anahtarını kullanmamalıdır. Bunun yerine, bu tür işlemler varsayılan ayarlara erişmek için HKEY_LOCAL_MACHINE\Software\Classes anahtarını açıkça açabilir. HKEY_LOCAL_MACHINE\Software\Classes içeriğini belirtilen kullanıcının ayarlarıyla bir araya getiren bir kayıt defteri anahtarı açmak için, bu işlemler RegOpenUserClassesRoot işlevini çağırabilir. Örneğin, istemcinin kimliğine bürünen bir iş parçacığı, kimliğine bürünülen istemci için birleştirilmiş bir görünüm alması gerekiyorsa RegOpenUserClassesRoot çağırabilir. Belirtilen kullanıcının kullanıcı profili yüklenmemişse RegOpenUserClassesRoot başarısız olduğunu unutmayın. Sistem, oturum açarken etkileşimli kullanıcının profilini otomatik olarak yükler. Diğer kullanıcılar için, kullanıcının profilini açıkça yüklemek için LoadUserProfile işlevini çağırmanız gerekir.
Bir uygulama yönetici haklarıyla çalıştırılırsa ve Kullanıcı Hesabı Denetimi devre dışı bırakılırsa, COM çalışma zamanı kullanıcı başına COM yapılandırmasını yoksayar ve yalnızca makine başına COM yapılandırmasına erişir. Yönetici hakları gerektiren uygulamalar, makine başına COM yapılandırma deposuna (HKEY_LOCAL_MACHINE\Software\Classes) yükleme sırasında bağımlı COM nesnelerini kaydetmelidir. Daha fazla bilgi için bkz. AC: UAC: COM Per-User Yapılandırma.
Windows Server 2003 ve Windows XP/2000: Uygulamalar bağımlı COM nesnelerini makine başına veya kullanıcı başına COM yapılandırma deposuna (HKEY_LOCAL_MACHINE\Software\Classes veya HKEY_CURRENT_USER\Software\Classes) kaydedebilir.
İlgili konular