共用方式為


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

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

登錄類別中的機碼

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

索引鍵 說明
ClassesRoot 定義文件類型以及與這些類型相關聯的屬性。
CurrentConfig 包含非使用者特定的硬體組態資訊。
CurrentUser 包含目前使用者偏好設定的相關資訊 (例如環境變數)。
DynData 包含動態登錄資料 (例如虛擬裝置驅動程式所使用的動態登錄資料)。
LocalMachine 包含五個子機碼 (Hardware、SAM、Security、Software 和 System) 來保存本機電腦的組態資料。
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

另請參閱