共用方式為


使用 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

請參閱

參考

Try...Catch...Finally 陳述式 (Visual Basic)

SystemException

ApplicationException

RegistryProxy

概念

安全性和登錄 (Visual Basic)

其他資源

讀取和寫入登錄 (Visual Basic)