GetValue物件的 方法My.Computer.Registry可用來讀取 Windows 登錄中的值。
如果以下範例中的機碼 "Software\MyApp" 不存在,則會拋出例外。
ValueName如果下列範例中的 「Name」 不存在,Nothing則會傳回 。
GetValue方法也可以用來判斷特定登錄機碼中是否存在指定的值。
當程式碼從網頁應用程式讀取登錄時,當前使用者取決於網頁應用程式中實作的驗證與模擬。
從登錄機碼讀取值
使用
GetValue方法,指定路徑和名稱來從登錄機碼讀取值。 下列範例會從讀取值NameHKEY_CURRENT_USER\Software\MyApp,並在消息框中顯示該值。Dim readValue = My.Computer.Registry.GetValue( "HKEY_CURRENT_USER\Software\MyApp", "Name", Nothing) MsgBox("The value is " & readValue)
此程式代碼範例也可作為 IntelliSense 代碼段使用。 在代碼段選擇器中,它位於 Windows作系統 > 登錄中。 如需詳細資訊,請參閱 代碼段。
判斷登錄機碼中是否存在值
使用
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則用於儲存個別使用者特定的數據。
以下條件可能會造成例外狀況:
鍵的名稱為
Nothing(ArgumentNullException)。用戶沒有許可權可讀取登錄機碼 (SecurityException)。
索引鍵名稱超過 255 個字元的限制 (ArgumentException)。
.NET Framework 安全性
若要執行此過程,您的元件需要由 RegistryPermission 類別授予的特權等級。 若在部分信任內容中執行,程序可能會因為權限不足而擲回例外狀況。 同樣地,用戶必須具有正確的 ACL,才能建立或寫入設定。 例如,具有程式代碼存取安全性權限的本機應用程式可能沒有作業系統的權限。 如需詳細資訊,請參閱 Code Access Security Basics。
備註
.NET Framework 和 .NET 的所有版本中,代碼存取安全性(CAS)已被棄用。 當使用 CAS 相關 API 時,最新版本的 .NET 不會接受 CAS 註釋,並會產生錯誤。 開發人員應該尋求替代方式來完成安全性工作。