HOW TO:在 Visual Basic 中讀取登錄機碼的值
My.Computer.Registry 物件的 GetValue 方法,可以用來讀取 Windows 登錄的值。
如果機碼,在下列範例中,"Software\MyApp"不存在,則會擲回例外狀況。如果ValueName、 「 名稱 」 在下列範例中,不存在, 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 作業系統 > 登錄] 中。如需詳細資訊,請參閱 程式碼片段。
判斷值是否存在於登錄機碼中
使用 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 則用來儲存個別使用者的特定資料。
下列情形可能會造成例外狀況 (Exception):
機碼的名稱為 Nothing (ArgumentNullException)。
使用者沒有足夠的使用權限可以讀取登錄機碼 (SecurityException)。
機碼名稱超過 255 個字元的限制 (ArgumentException)。
安全性
若要執行這個處理序 (Process),組件需要 RegistryPermission 類別授與的權限層級。如果您正在部分信任的內容中執行動作,則會因權限不足而導致處理序擲回例外狀況。同樣地,使用者必須有可以建立或寫入設定的正確存取控制清單 (ACL)。例如,具有程式碼存取安全性權限的本機應用程式,可能不具有作業系統使用權限。如需詳細資訊,請參閱程式碼存取安全性的基本概念。