共用方式為


如何:從 Windows 登錄讀取資料 (C++/CLI)

下列程式碼範例會使用 CurrentUser 機碼,從 Windows 登錄讀取資料。 首先會使用 GetSubKeyNames 方法列舉子機碼 (Subkey),然後使用 OpenSubKey 方法開啟 Identities 子機碼。 就像根目錄機碼一樣,每個子機碼都是由 RegistryKey 類別 (Class) 所表示。 最後,新的 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 的靜態執行個體 (Instance) 容器。 每個執行個體表示一個根目錄登錄節點。 這些執行個體為 ClassesRootCurrentConfigCurrentUserLocalMachineUsers

除了是靜態以外,Registry 類別中的物件是唯讀的。 此外,用來存取登錄物件內容 RegistryKey 類別的執行個體也是唯讀的。 如需如何覆寫這個行為的範例,請參閱 如何:將資料寫入至 Windows 登錄 (C++/CLI)

Registry 類別中還有兩個額外的物件:DynDataPerformanceData。 這兩個物件都是 RegistryKey 類別的執行個體。 DynData 物件包含動態登錄資訊,只有 Windows 98 和 Windows Me 支援此資訊。 PerformanceData 物件可以用來存取使用 Windows 效能監視系統之應用程式的效能計數器資訊。 PerformanceData 節點表示不是真正儲存在登錄的資訊,因此無法使用 Regedit.exe 來檢視。

請參閱

概念

如何:將資料寫入至 Windows 登錄 (C++/CLI)

其他資源

Windows 作業 (C++/CLI)

以 Visual C++ 進行 .NET 程式設計