共用方式為


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

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

Registry 類別內的機碼

Registry 類別提供可用來存取子機碼 (Subkey) 及其值的基底登錄機碼。 基底機碼本身是唯讀的。 下表列出並說明了 Registry 類別公開 (Expose) 的七個機碼。

機碼

說明

ClassesRoot

定義文件類型以及和這些類型相關聯的屬性

CurrentConfig

包含非使用者特定的硬體組態資訊

CurrentUser

包含目前使用者喜好設定的相關資訊,如環境變數

DynData

包含動態登錄資料,如虛擬裝置驅動程式使用的登錄資料

LocalMachine

包含保存本機電腦之組態資料的五個子機碼 (Hardware、SAM、Security、Software 和 System)

PerformanceData

包含軟體元件的效能資訊

Users

包含預設使用者喜好設定的相關資訊

安全性注意事項安全性注意事項

更為安全的做法是將資料寫入至目前的使用者 (CurrentUser),而非寫入本機電腦 (LocalMachine)。 當您正在建立另一處理序 (可能為惡意的) 先前已建立的機碼時,會發生一種狀況,通常稱為「非法佔據」(Squatting)。 為了避免發生這種情況,請使用 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

請參閱

工作

疑難排解:管理登錄 (Visual Basic)

參考

SystemException

ApplicationException

RegistryProxy

概念

Visual Basic 的結構化例外處理概觀

一般登錄工作 (Visual Basic)

安全性和登錄 (Visual Basic)

讀取和寫入使用 My 的登錄 (Visual Basic)