Share via


如何:在 Visual Basic 中讀取登錄機碼的值

您可以使用 My.Computer.Registry 物件的 GetValue 方法來讀取 Windows 登錄中的值。

如果下列範例中的機碼 "Software\MyApp" 不存在,則會擲回例外狀況。 如果下列範例中的 ValueName (也就是 "Name") 不存在,則會傳回 Nothing

GetValue 方法也可用來判斷特定登錄機碼中是否有指定的值。

當程式碼從 Web 應用程式讀取登錄時,會由 Web 應用程式中所實作的驗證和模擬來決定目前的使用者。

讀取登錄機碼的值

  • 使用 GetValue 方法,並指定路徑和名稱來讀取登錄機碼的值。 下列範例會從 HKEY_CURRENT_USER\Software\MyApp 讀取 Name 值,並顯示於訊息方塊中。

    Dim readValue = My.Computer.Registry.GetValue(
        "HKEY_CURRENT_USER\Software\MyApp", "Name", Nothing)
    MsgBox("The value is " & readValue)
    

這個程式碼範例也可用為 IntelliSense 程式碼片段。 在程式碼片段選擇器中,其位於 [Windows 作業系統] > [登錄] 中。 如需詳細資訊,請參閱 Code Snippets

判斷登錄機碼中是否有一個值

  • 使用 GetValue 方法來擷取此值。 下列程式碼會檢查此值是否存在;如果不存在,則傳回訊息。

    If My.Computer.Registry.GetValue("HKEY_LOCAL_MACHINE\TestApp",
    "TestValue", Nothing) Is Nothing Then
        MsgBox("Value does not exist.")
    End If
    

穩固程式設計

登錄包含可用來儲存資料的最上層或根目錄機碼。 例如,HKEY_LOCAL_MACHINE 根目錄機碼可用於儲存所有使用者所使用的電腦層級設定,而 HKEY_CURRENT_USER 可用於儲存個別使用者的特定資料。

以下條件可能會造成例外狀況:

.NET Framework 安全性

若要執行此程序,您的組件需要由 RegistryPermission 類別授與的權限層級。 若在部分信任內容中執行,程序可能會因為權限不足而擲回例外狀況。 同樣地,使用者必須有正確的 ACL,才能建立或寫入設定。 例如,具有程式碼存取安全性權限的本機應用程式,可能不具有作業系統權限。 如需詳細資訊,請參閱 Code Access Security Basics

注意

在所有版本的 .NET Framework 與 .NET 中,程式碼存取安全性 (CAS) 均已被取代。 當使用 CAS 相關 API 時,最新版本的 .NET 不會接受 CAS 註釋,並會產生錯誤。 開發人員應尋求替代方案來完成安全性工作。

另請參閱