Поделиться через


Практическое руководство. Чтение данных из реестра 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)

Другие ресурсы

Операции Windows (C++/CLI)

Руководство по программированию в среде .NET в Visual C++