共用方式為


使用 Microsoft.Win32 命名空間讀取和寫入登錄 (Visual Basic)

雖然My.Computer.Registry在針對登錄進行程式設計時應該涵蓋您的基本需求,但您也可以在 .NET 的命名空間中使用 RegistryRegistryKeyMicrosoft.Win32 類別。

登錄類別中的鍵值

類別 Registry 提供基底登錄機碼,可用來存取子機碼及其值。 基底鍵本身是唯讀的。 下表列出並描述 Registry 類別公開的七個鍵。

鑰匙 說明
ClassesRoot 定義與這些類型相關聯的檔和屬性類型。
CurrentConfig 包含非使用者特定的硬體組態資訊。
CurrentUser 包含目前使用者喜好設定的相關信息,例如環境變數。
DynData 包含動態登錄數據,例如虛擬設備驅動器所使用的數據。
LocalMachine 包含五個子機碼(硬體、SAM、安全性、軟體和系統),可保存本機計算機的組態數據。
PerformanceData 包含軟體元件的效能資訊。
Users 包含預設使用者喜好設定的相關信息。

這很重要

將數據寫入目前使用者 (CurrentUser) 比寫入本機電腦 (LocalMachine) 更安全。 當您建立的密鑰先前是由另一個可能惡意的程序所建立時,就會出現通常稱為「搶占」的情況。 若要防止這種情況發生,請使用 方法,例如 GetValue,如果索引鍵不存在,則會傳 Nothing 回 。

從註冊表讀取值

下列程式代碼示範如何從HKEY_CURRENT_USER讀取字串。

Dim regVersion As Microsoft.Win32.RegistryKey
Dim keyValue = "Software\\Microsoft\\TestApp\\1.0"
regVersion = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(keyValue, False)
Dim intVersion As Integer = 0
If regVersion IsNot Nothing Then
    intVersion = regVersion.GetValue("Version", 0)
    regVersion.Close()
End If

下列程式代碼會讀取、遞增,然後將字串寫入到 HKEY_CURRENT_USER。

Dim regVersion = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(
                  "SOFTWARE\\Microsoft\\TestApp\\1.0", True)
If regVersion Is Nothing Then
    ' Key doesn't exist; create it.
    regVersion = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(
                 "SOFTWARE\\Microsoft\\TestApp\\1.0")
End If

Dim intVersion As Integer = 0
If regVersion IsNot Nothing Then
    intVersion = regVersion.GetValue("Version", 0)
    intVersion = intVersion + 1
    regVersion.SetValue("Version", intVersion)
    regVersion.Close()
End If

另請參閱