共用方式為


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

更新:2007 年 11 月

雖然在進行登錄的程式設計時 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 As String
keyValue = "Software\\Microsoft\\TestApp\\1.0"
regVersion = Microsoft.Win32.Registry.CurrentUser.OpenSubKey(keyValue, False)
Dim intVersion As Integer = 0
If (Not regVersion Is Nothing) Then
    intVersion = regVersion.GetValue("Version", 0)
    regVersion.Close()
End If

下列程式碼會讀取、遞增字串,並將其寫入 HKEY_CURRENT_USER。

Dim regVersion As Microsoft.Win32.RegistryKey
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 (Not regVersion Is Nothing) Then
    intVersion = regVersion.GetValue("Version", 0)
    intVersion = intVersion + 1
    regVersion.SetValue("Version", intVersion)
    regVersion.Close()
End If

請參閱

工作

疑難排解:管理登錄

概念

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

一般登錄工作

安全性和登錄

讀取和寫入使用 My 的登錄

參考

SystemException

ApplicationException

My.Computer.Registry 物件