Практическое руководство. Чтение данных из реестра Windows (C++/CLI)
В следующем примере для чтения данных из реестра Windows кода используется ключ CurrentUser. Сначала выполняется перечисление подразделов с помощью метода GetSubKeyNames, а затем подраздел Identities (Идентификаторы) открывается с помощью метода OpenSubKey. Как и корневые ключи, каждый подраздел представлен классом RegistryKey. И в завершение, новый объект RegistryKey используется для перечисления пар ключ-значение.
Пример
Код
// registry_read.cpp
// compile with: /clr
using namespace System;
using namespace Microsoft::Win32;
int main( )
{
array<String^>^ key = Registry::CurrentUser->GetSubKeyNames( );
Console::WriteLine("Subkeys within CurrentUser root key:");
for (int i=0; i<key->Length; i++)
{
Console::WriteLine(" {0}", key[i]);
}
Console::WriteLine("Opening subkey 'Identities'...");
RegistryKey^ rk = nullptr;
rk = Registry::CurrentUser->OpenSubKey("Identities");
if (rk==nullptr)
{
Console::WriteLine("Registry key not found - aborting");
return -1;
}
Console::WriteLine("Key/value pairs within 'Identities' key:");
array<String^>^ name = rk->GetValueNames( );
for (int i=0; i<name->Length; i++)
{
String^ value = rk->GetValue(name[i])->ToString();
Console::WriteLine(" {0} = {1}", name[i], value);
}
return 0;
}
Примечания
Класс Registry является контейнером для статических экземпляров класса RegistryKey. Каждый экземпляр представляет корневой узел реестра. К этим экземплярам относятся ClassesRoot, CurrentConfig, CurrentUser, LocalMachine и Users.
Помимо статического свойства, объекты в классе Registry доступны только для чтения. Кроме того, экземпляры класса RegistryKey, которые создаются для доступа к содержимому объектов реестра, также доступны только для чтения. Пример переопределения данного поведения см. в разделе Практическое руководство. Запись данных в реестр Windows (C++/CLI).
В классе Registry находятся два дополнительных объекта: DynData и PerformanceData. Оба экземпляра принадлежат классу RegistryKey. Объект DynData содержит динамические сведения реестра, которые поддерживаются только операционными системами Windows 98 и Windows Me. Объект PerformanceData может использоваться для доступа к данным счетчиков производительности для приложений, использующих "Систему мониторинга производительности Windows". узел PerformanceData представляет сведения, которые фактически не сохраняются в реестре, и, следовательно, не могут быть отображены с помощью приложения REGEDIT.
См. также
Основные понятия
Практическое руководство. Запись данных в реестр Windows (C++/CLI)