HOW TO:從 Windows 登錄讀取資料 (C++/CLI)

下列程式碼範例會使用 CurrentUser 機碼,從 Windows 登錄讀取資料。首先,子機碼會列舉使用GetSubKeyNames方法],然後按一下 [識別身份子機碼開啟時使用OpenSubKey方法。就像根目錄機碼一樣,每個子機碼都是由 RegistryKey 類別 (Class) 所表示。最後,新的 RegistryKey 物件會用來列舉機碼/值組。

範例

df4afx57.collapse_all(zh-tw,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 的靜態執行個體 (Instance) 容器。每個執行個體表示一個根目錄登錄節點。這些執行個體為 ClassesRootCurrentConfigCurrentUserLocalMachineUsers

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

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

請參閱

概念

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

其他資源

Windows 作業 (C++/CLI)

.NET 程式設計的 Visual C++