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


Практическое руководство. Чтение данных из реестра Windows (C++/CLI)

В следующем примере для чтения данных из реестра Windows кода используется ключ CurrentUser.Во-первых, подразделах перечислены с помощью метода GetSubKeyNames а затем подраздел идентификаторов открывается с помощью метода OpenSubKey.Как и корневые ключи, каждый подраздел представлен классом RegistryKey.И в завершение, новый объект RegistryKey используется для перечисления пар ключ-значение.

Пример

df4afx57.collapse_all(ru-ru,VS.110).gifКод

// 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.exe.

См. также

Основные понятия

Практическое руководство. Запись данных в реестр Windows (C++/CLI)

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

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

Программирование в Visual C++ .NET